From 6388e4a0a8b33661fbec70ce1b6a96c78218bd52 Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Wed, 28 Sep 2022 03:24:48 -0700 Subject: [PATCH] more vjaguar cleanup --- Assets/dll/virtualjaguar.wbx.zst | Bin 185994 -> 180853 bytes waterbox/virtualjaguar/BizInterface.cpp | 2 +- waterbox/virtualjaguar/src/cdhle.cpp | 26 +- waterbox/virtualjaguar/src/dsp.cpp | 1 - waterbox/virtualjaguar/src/gpu.cpp | 1 - waterbox/virtualjaguar/src/jagdasm.cpp | 189 - waterbox/virtualjaguar/src/jagdasm.h | 9 - waterbox/virtualjaguar/src/jaguar.cpp | 8 +- waterbox/virtualjaguar/src/m68000/cpudefs.h | 2 - waterbox/virtualjaguar/src/m68000/cpuemu.c | 25705 ---------------- waterbox/virtualjaguar/src/m68000/cpuextra.c | 323 +- waterbox/virtualjaguar/src/m68000/cpuextra.h | 11 +- waterbox/virtualjaguar/src/m68000/cpustbl.c | 1586 +- waterbox/virtualjaguar/src/m68000/cputbl.h | 3160 -- waterbox/virtualjaguar/src/m68000/gencpu.c | 2818 -- waterbox/virtualjaguar/src/m68000/inlines.h | 127 +- waterbox/virtualjaguar/src/m68000/m68kdasm.c | 421 - .../virtualjaguar/src/m68000/m68kinterface.c | 484 +- .../virtualjaguar/src/m68000/m68kinterface.h | 30 +- waterbox/virtualjaguar/src/m68000/readcpu.c | 108 +- waterbox/virtualjaguar/src/m68000/readcpu.h | 3 +- waterbox/virtualjaguar/src/m68000/sysdeps.h | 61 - waterbox/virtualjaguar/src/m68000/table68k | 260 - 23 files changed, 67 insertions(+), 35268 deletions(-) delete mode 100644 waterbox/virtualjaguar/src/jagdasm.cpp delete mode 100644 waterbox/virtualjaguar/src/jagdasm.h delete mode 100644 waterbox/virtualjaguar/src/m68000/gencpu.c delete mode 100644 waterbox/virtualjaguar/src/m68000/m68kdasm.c delete mode 100644 waterbox/virtualjaguar/src/m68000/table68k diff --git a/Assets/dll/virtualjaguar.wbx.zst b/Assets/dll/virtualjaguar.wbx.zst index 1ddde9803d4a9edf21c72db866c07db0ddb1ef45..125f17bd31788140b6307604c3a85ba804262dc8 100644 GIT binary patch literal 180853 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%0DWz-mmI8($_1} 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

DB1@i2OH#4o4J09%*9Y zZE@N57&W91MJx#sGRAMQ>h_r6k6%4rbxFdLBtB2Y{ckW%mRp@UxkdSs%w8i=qtV-Jgt0ZAT8($~h;S1D^frFo&>;o3(0-STjbY23~qNg5R5zc+D_%;lz@A|BKhw4x8n+=5(wLU>j7zu zuiTB%bIa@C2hcDm+JN&fKj4W4e^d4=DnI)AG0Ld_$J$}*?5c2pp#I>-krKgHXGwnvzd|ekUAOrlPFc(1dmyLLF?^Zs4;_j1wZrNcR{Q<^({=k2a z4>J55aQ;|y6T6SOc|;F5f+yex4)_8`Z~{u80v|92ZcqgZ@C8qB1eCx9R&WTOzzrPW z1J1w-c9;zRsD{tz56jSx_V^9zFd6?~54%y1m$7%WVyyPhu6vdE ztT16pb03Kv>K{Nfb@_p5s`H?dDjC#jPO&GLnU@uFQvbgnUtkvSC+C?|YK63YMu_CL zS7t{8b5+LHskodqK*hO-KfAmW20DX3IV&%uSrVFlb9e{pqXYut5>3at zg{FYlW8dnz9AgyuiExDj6!Chcixs@($Z!JvNp21g^mumihaUV>GQ|Y^34a{le~52= z0_FaHlO|o2o_k2RsL*9c%^Vh+RYWSOZSl)URy=Wsvfah_1-c>mADKWea$o|xM$w|# zxGv}BT@yZi_mqhBAAYpw*u8Rq8`iWfZ*jhq&3d$Ex)%z+))nWaY%2XV)I61WtkaxJ zPj1?Y)>}aK-ktK=!V1^X#Oox>NzHy?V(E6=5zsS~HK%=`;!!{B;EjU&nZlC3GTEB{Rxvh!fX{y%z3JOC8gOc*PBz_# zK=j!*fsXersCkZJ&vzo{SJ(0D2$(tg)L(H&nukLG=~2b*P4$EhKKyb<{;d_6^#p|FE(@L zu*!L&6Sz&~}K=F9J}C6{;bc6}7Z^;IsFp1Ffu} z00SI8!kX!@l($)~Cu~g-@BcIcWiz>l_QuF-#?w|7uhD@ALZYxQion4?)jh5oR{!&R z2ZfOP{Wz_AEEyk&{QW=i+^@Ghm(klY|IC=UdVjsg>Z3}OU~ME=(DSp-zA1xc(u1TP z515>b*W+ARrPcom^r+>*Hk-zuiv9PNRq}(}-!1Rwo zPOtx=*6YmZAJFM9gLUb@F}=u~U`$=jODZ?rwz#-o;d?XC=??U43{x#^K3`hW#U{-* z|MggHl5ow$)?Πmv!<||W&Gk~pFWg;ILqTd?Kb!gr>m6z1Q~hp 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 DL$+v& diff --git a/waterbox/virtualjaguar/BizInterface.cpp b/waterbox/virtualjaguar/BizInterface.cpp index ea89ea087c..7a2ba10802 100644 --- a/waterbox/virtualjaguar/BizInterface.cpp +++ b/waterbox/virtualjaguar/BizInterface.cpp @@ -356,7 +356,7 @@ EXPORT void GetRegisters(u32* regs) { for (u32 i = 0; i < 18; i++) { - regs[i] = m68k_get_reg(NULL, (m68k_register_t)i); + regs[i] = m68k_get_reg((m68k_register_t)i); } memcpy(®s[18], gpu_reg_bank_0, 128); memcpy(®s[50], gpu_reg_bank_1, 128); diff --git a/waterbox/virtualjaguar/src/cdhle.cpp b/waterbox/virtualjaguar/src/cdhle.cpp index dbd2a34dd1..76ffb2156e 100644 --- a/waterbox/virtualjaguar/src/cdhle.cpp +++ b/waterbox/virtualjaguar/src/cdhle.cpp @@ -336,7 +336,7 @@ static void ResetCallbacks(void) static void LoadISRStub(void) { - uint32_t isrAddr = m68k_get_reg(NULL, M68K_REG_A0); + uint32_t isrAddr = m68k_get_reg(M68K_REG_A0); uint32_t addr = 0xF03010; #define WRITE_GASM(x) do { GPUWriteWord(addr, x, M68K); addr += 2; } while (0) @@ -405,7 +405,7 @@ void CDHLEHook(uint32_t which) static void CD_init(void) { - fprintf(stderr, "CD_init called %08X\n", m68k_get_reg(NULL, M68K_REG_A0)); + fprintf(stderr, "CD_init called %08X\n", m68k_get_reg(M68K_REG_A0)); LoadISRStub(); cd_initm = false; } @@ -414,7 +414,7 @@ static void CD_mode(void) { // bit 0 = speed (0 = single, 1 = double) // bit 1 = mode (0 = audio, 1 = data) - cd_mode = m68k_get_reg(NULL, M68K_REG_D0) & 3; + cd_mode = m68k_get_reg(M68K_REG_D0) & 3; fprintf(stderr, "CD_mode mode = %d, speed = %d\n", cd_mode >> 1, cd_mode & 1); NO_ERR(); } @@ -426,7 +426,7 @@ static void CD_ack(void) static void CD_jeri(void) { - bool njerry = m68k_get_reg(NULL, M68K_REG_D0) & 1; + bool njerry = m68k_get_reg(M68K_REG_D0) & 1; if (cd_jerry ^ njerry) { fprintf(stderr, "changing jerry mode %d -> %d\n", cd_jerry, njerry); @@ -437,7 +437,7 @@ static void CD_jeri(void) static void CD_spin(void) { - fprintf(stderr, "CD_spin: new session %04X\n", m68k_get_reg(NULL, M68K_REG_D1) & 0xFFFF); + fprintf(stderr, "CD_spin: new session %04X\n", m68k_get_reg(M68K_REG_D1) & 0xFFFF); NO_ERR(); } @@ -486,8 +486,8 @@ static void CD_upaus(void) static void CD_read(void) { - uint32_t dstStart = m68k_get_reg(NULL, M68K_REG_A0); - uint32_t dstEnd = m68k_get_reg(NULL, M68K_REG_A1); + uint32_t dstStart = m68k_get_reg(M68K_REG_A0); + uint32_t dstEnd = m68k_get_reg(M68K_REG_A1); fprintf(stderr, "CD READ: dstStart %08X, dstEnd %08X\n", dstStart, dstEnd); @@ -498,7 +498,7 @@ static void CD_read(void) return; } - uint32_t timecode = m68k_get_reg(NULL, M68K_REG_D0); + uint32_t timecode = m68k_get_reg(M68K_REG_D0); uint32_t frames = timecode & 0xFF; uint32_t seconds = (timecode >> 8) & 0xFF; @@ -517,8 +517,8 @@ static void CD_read(void) { if (cd_initm) { - uint32_t marker = m68k_get_reg(NULL, M68K_REG_D1); - uint32_t circBufSz = m68k_get_reg(NULL, M68K_REG_D2); + uint32_t marker = m68k_get_reg(M68K_REG_D1); + uint32_t circBufSz = m68k_get_reg(M68K_REG_D2); fprintf(stderr, "cd_initm read: marker %04X, circBufSz %04X\n", marker, circBufSz); uint32_t lba = (minutes * 60 + seconds) * 75 + frames - 150; uint8_t buf2352[2352 + 128]; @@ -630,7 +630,7 @@ static void CD_ptr(void) static void CD_osamp(void) { - cd_osamp = m68k_get_reg(NULL, M68K_REG_D0) & 3; + cd_osamp = m68k_get_reg(M68K_REG_D0) & 3; NO_ERR(); } @@ -641,14 +641,14 @@ static void CD_getoc(void) static void CD_initm(void) { - fprintf(stderr, "CD_initm called %08X\n", m68k_get_reg(NULL, M68K_REG_A0)); + fprintf(stderr, "CD_initm called %08X\n", m68k_get_reg(M68K_REG_A0)); LoadISRStub(); cd_initm = true; } static void CD_initf(void) { - fprintf(stderr, "CD_initf called %08X\n", m68k_get_reg(NULL, M68K_REG_A0)); + fprintf(stderr, "CD_initf called %08X\n", m68k_get_reg(M68K_REG_A0)); LoadISRStub(); cd_initm = false; } diff --git a/waterbox/virtualjaguar/src/dsp.cpp b/waterbox/virtualjaguar/src/dsp.cpp index b0a0393906..9d997ffdc5 100644 --- a/waterbox/virtualjaguar/src/dsp.cpp +++ b/waterbox/virtualjaguar/src/dsp.cpp @@ -19,7 +19,6 @@ #include #include "dac.h" #include "gpu.h" -#include "jagdasm.h" #include "jaguar.h" #include "jerry.h" #include "m68000/m68kinterface.h" diff --git a/waterbox/virtualjaguar/src/gpu.cpp b/waterbox/virtualjaguar/src/gpu.cpp index 7cf108cc12..c3cc625698 100644 --- a/waterbox/virtualjaguar/src/gpu.cpp +++ b/waterbox/virtualjaguar/src/gpu.cpp @@ -27,7 +27,6 @@ #include #include #include "dsp.h" -#include "jagdasm.h" #include "jaguar.h" #include "m68000/m68kinterface.h" #include "tom.h" diff --git a/waterbox/virtualjaguar/src/jagdasm.cpp b/waterbox/virtualjaguar/src/jagdasm.cpp deleted file mode 100644 index 4ce77e5b6c..0000000000 --- a/waterbox/virtualjaguar/src/jagdasm.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// -// Jaguar RISC Disassembly -// -// Originally by David Raingeard -// GCC/SDL port by Niels Wagenaar (Linux/WIN32) and Carwin Jones (BeOS) -// Minor cleanups by James Hammons -// (C) 2012 Underground Software -// -// JLH = James Hammons -// -// Who When What -// --- ---------- ------------------------------------------------------------- -// JLH 06/01/2012 Created this log (long overdue! ;-) -// JLH 01/23/2013 Beautifying of disassembly, including hex digits of opcodes -// and operands -// - -#include "jagdasm.h" - -#include -#include "jaguar.h" - -#define ROPCODE(a) JaguarReadWord(a) - -uint8_t convert_zero[32] = -{ 32,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 }; - -const char * condition[32] = -{ - "", - "nz,", - "z,", - "???,", - "nc,", - "nc nz,", - "nc z,", - "???,", - - "c,", - "c nz,", - "c z,", - "???,", - "???,", - "???,", - "???,", - "???,", - - "???,", - "???,", - "???,", - "???,", - "nn,", - "nn nz,", - "nn z,", - "???,", - - "n,", - "n nz,", - "n z,", - "???,", - "???,", - "???,", - "???,", - "never," -}; - -char * signed_16bit(int16_t val) -{ - static char temp[10]; - - if (val < 0) - sprintf(temp, "-$%X", -val); - else - sprintf(temp, "$%X", val); - - return temp; -} - -unsigned dasmjag(int dsp_type, char * bufferOut, unsigned pc) -{ - char buffer[64]; - int op = ROPCODE(pc); - int reg1 = (op >> 5) & 31; - int reg2 = op & 31; - int size = 2; - pc += 2; - - switch (op >> 10) - { - case 0: sprintf(buffer, "ADD R%02d,R%02d", reg1, reg2); break; - case 1: sprintf(buffer, "ADDC R%02d,R%02d", reg1, reg2); break; - case 2: sprintf(buffer, "ADDQ $%X,R%02d", convert_zero[reg1], reg2); break; - case 3: sprintf(buffer, "ADDQT $%X,R%02d", convert_zero[reg1], reg2); break; - case 4: sprintf(buffer, "SUB R%02d,R%02d", reg1, reg2); break; - case 5: sprintf(buffer, "SUBC R%02d,R%02d", reg1, reg2); break; - case 6: sprintf(buffer, "SUBQ $%X,R%02d", convert_zero[reg1], reg2); break; - case 7: sprintf(buffer, "SUBQT $%X,R%02d", convert_zero[reg1], reg2); break; - case 8: sprintf(buffer, "NEG R%02d", reg2); break; - case 9: sprintf(buffer, "AND R%02d,R%02d", reg1, reg2); break; - case 10: sprintf(buffer, "OR R%02d,R%02d", reg1, reg2); break; - case 11: sprintf(buffer, "XOR R%02d,R%02d", reg1, reg2); break; - case 12: sprintf(buffer, "NOT R%02d", reg2); break; - case 13: sprintf(buffer, "BTST $%X,R%02d", reg1, reg2); break; - case 14: sprintf(buffer, "BSET $%X,R%02d", reg1, reg2); break; - case 15: sprintf(buffer, "BCLR $%X,R%02d", reg1, reg2); break; - case 16: sprintf(buffer, "MULT R%02d,R%02d", reg1, reg2); break; - case 17: sprintf(buffer, "IMULT R%02d,R%02d", reg1, reg2); break; - case 18: sprintf(buffer, "IMULTN R%02d,R%02d", reg1, reg2); break; - case 19: sprintf(buffer, "RESMAC R%02d", reg2); break; - case 20: sprintf(buffer, "IMACN R%02d,R%02d", reg1, reg2); break; - case 21: sprintf(buffer, "DIV R%02d,R%02d", reg1, reg2); break; - case 22: sprintf(buffer, "ABS R%02d", reg2); break; - case 23: sprintf(buffer, "SH R%02d,R%02d", reg1, reg2); break; - case 24: sprintf(buffer, "SHLQ $%X,R%02d", 32 - reg1, reg2); break; - case 25: sprintf(buffer, "SHRQ $%X,R%02d", convert_zero[reg1], reg2); break; - case 26: sprintf(buffer, "SHA R%02d,R%02d", reg1, reg2); break; - case 27: sprintf(buffer, "SHARQ $%X,R%02d", convert_zero[reg1], reg2); break; - case 28: sprintf(buffer, "ROR R%02d,R%02d", reg1, reg2); break; - case 29: sprintf(buffer, "RORQ $%X,R%02d", convert_zero[reg1], reg2); break; - case 30: sprintf(buffer, "CMP R%02d,R%02d", reg1, reg2); break; - case 31: sprintf(buffer, "CMPQ %s,R%02d", signed_16bit((int16_t)(reg1 << 11) >> 11), reg2);break; - case 32: if (dsp_type == JAGUAR_GPU) - sprintf(buffer, "SAT8 R%02d", reg2); - else - sprintf(buffer, "SUBQMOD $%X,R%02d", convert_zero[reg1], reg2); - break; - case 33: if (dsp_type == JAGUAR_GPU) - sprintf(buffer, "SAT16 R%02d", reg2); - else - sprintf(buffer, "SAT16S R%02d", reg2); - break; - case 34: sprintf(buffer, "MOVE R%02d,R%02d", reg1, reg2); break; - case 35: sprintf(buffer, "MOVEQ %d,R%02d", reg1, reg2); break; - case 36: sprintf(buffer, "MOVETA R%02d,R%02d", reg1, reg2); break; - case 37: sprintf(buffer, "MOVEFA R%02d,R%02d", reg1, reg2); break; - case 38: sprintf(buffer, "MOVEI #$%X,R%02d", ROPCODE(pc) | (ROPCODE(pc+2)<<16), reg2); size = 6; break; - case 39: sprintf(buffer, "LOADB (R%02d),R%02d", reg1, reg2); break; - case 40: sprintf(buffer, "LOADW (R%02d),R%02d", reg1, reg2); break; - case 41: sprintf(buffer, "LOAD (R%02d),R%02d", reg1, reg2); break; - case 42: if (dsp_type == JAGUAR_GPU) - sprintf(buffer, "LOADP (R%02d),R%02d", reg1, reg2); - else - sprintf(buffer, "SAT32S R%02d", reg2); - break; - case 43: sprintf(buffer, "LOAD (R14+$%X),R%02d", convert_zero[reg1]*4, reg2);break; - case 44: sprintf(buffer, "LOAD (R15+$%X),R%02d", convert_zero[reg1]*4, reg2);break; - case 45: sprintf(buffer, "STOREB R%02d,(R%02d)", reg2, reg1); break; - case 46: sprintf(buffer, "STOREW R%02d,(R%02d)", reg2, reg1); break; - case 47: sprintf(buffer, "STORE R%02d,(R%02d)", reg2, reg1); break; - case 48: if (dsp_type == JAGUAR_GPU) - sprintf(buffer, "STOREP R%02d,(R%02d)", reg2, reg1); - else - sprintf(buffer, "MIRROR R%02d", reg2); - break; - case 49: sprintf(buffer, "STORE R%02d,(R14+$%X)", reg2, convert_zero[reg1]*4);break; - case 50: sprintf(buffer, "STORE R%02d,(R15+$%X)", reg2, convert_zero[reg1]*4);break; - case 51: sprintf(buffer, "MOVE PC,R%02d", reg2); break; - case 52: sprintf(buffer, "JUMP %s(R%02d)", condition[reg2], reg1); break; - case 53: sprintf(buffer, "JR %s$%X", condition[reg2], pc + ((int8_t)(reg1 << 3) >> 2)); break; - case 54: sprintf(buffer, "MMULT R%02d,R%02d", reg1, reg2); break; - case 55: sprintf(buffer, "MTOI R%02d,R%02d", reg1, reg2); break; - case 56: sprintf(buffer, "NORMI R%02d,R%02d", reg1, reg2); break; - case 57: sprintf(buffer, "NOP"); break; - case 58: sprintf(buffer, "LOAD (R14+R%02d),R%02d", reg1, reg2); break; - case 59: sprintf(buffer, "LOAD (R15+R%02d),R%02d", reg1, reg2); break; - case 60: sprintf(buffer, "STORE R%02d,(R14+R%02d)", reg2, reg1); break; - case 61: sprintf(buffer, "STORE R%02d,(R15+R%02d)", reg2, reg1); break; - case 62: if (dsp_type == JAGUAR_GPU) - sprintf(buffer, "SAT24 R%02d", reg2); - else - sprintf(buffer, "illegal [%d,%d]", reg1, reg2); - break; - case 63: if (dsp_type == JAGUAR_GPU) - sprintf(buffer, (reg1 ? "UNPACK R%02d" : "PACK R%02d"), reg2); - else - sprintf(buffer, "ADDQMOD $%X,R%02d", convert_zero[reg1], reg2); - break; - } - - if (size == 2) - sprintf(bufferOut, "%04X %-24s", op, buffer); - else - { - uint16_t word1 = ROPCODE(pc), word2 = ROPCODE(pc + 2); - sprintf(bufferOut, "%04X %04X %04X %-24s", op, word1, word2, buffer); - } - - return size; -} diff --git a/waterbox/virtualjaguar/src/jagdasm.h b/waterbox/virtualjaguar/src/jagdasm.h deleted file mode 100644 index 0171f2bd51..0000000000 --- a/waterbox/virtualjaguar/src/jagdasm.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __JAGDASM__ -#define __JAGDASM__ - -#define JAGUAR_GPU 0 -#define JAGUAR_DSP 1 - -unsigned dasmjag(int dsp_type, char * buffer, unsigned pc); - -#endif diff --git a/waterbox/virtualjaguar/src/jaguar.cpp b/waterbox/virtualjaguar/src/jaguar.cpp index e8a9208d7c..d11945c4e2 100644 --- a/waterbox/virtualjaguar/src/jaguar.cpp +++ b/waterbox/virtualjaguar/src/jaguar.cpp @@ -57,12 +57,12 @@ void M68KInstructionHook(void) { if (jaguarCdInserted) { - uint32_t pc = m68k_get_reg(NULL, M68K_REG_PC); + uint32_t pc = m68k_get_reg(M68K_REG_PC); if (pc >= 0x3000 && pc <= 0x306C) { CDHLEHook((pc - 0x3000) / 6); // return - uint32_t sp = m68k_get_reg(NULL, M68K_REG_SP); + uint32_t sp = m68k_get_reg(M68K_REG_SP); m68k_set_reg(M68K_REG_PC, m68k_read_memory_32(sp)); m68k_set_reg(M68K_REG_SP, sp + 4); } @@ -73,12 +73,12 @@ void M68KInstructionHook(void) uint32_t regs[18]; for (uint32_t i = 0; i < 18; i++) { - regs[i] = m68k_get_reg(NULL, (m68k_register_t)i); + regs[i] = m68k_get_reg((m68k_register_t)i); } CPUTraceCallback(regs); } - MAYBE_CALLBACK(ExecuteCallback, m68k_get_reg(NULL, M68K_REG_PC)); + MAYBE_CALLBACK(ExecuteCallback, m68k_get_reg(M68K_REG_PC)); } // diff --git a/waterbox/virtualjaguar/src/m68000/cpudefs.h b/waterbox/virtualjaguar/src/m68000/cpudefs.h index 191057f1f7..d6d7c6f22d 100644 --- a/waterbox/virtualjaguar/src/m68000/cpudefs.h +++ b/waterbox/virtualjaguar/src/m68000/cpudefs.h @@ -70,8 +70,6 @@ extern struct regstruct regs, lastint_regs; /* Possible exceptions sources for M68000_Exception() and Exception() */ #define M68000_EXC_SRC_CPU 1 /* Direct CPU exception */ #define M68000_EXC_SRC_AUTOVEC 2 /* Auto-vector exception (e.g. VBL) */ -//#define M68000_EXC_SRC_INT_MFP 3 /* MFP interrupt exception */ -//#define M68000_EXC_SRC_INT_DSP 4 /* DSP interrupt exception */ #define SET_CFLG(x) (CFLG = (x)) #define SET_NFLG(x) (NFLG = (x)) diff --git a/waterbox/virtualjaguar/src/m68000/cpuemu.c b/waterbox/virtualjaguar/src/m68000/cpuemu.c index a97db34be9..205b2580f0 100644 --- a/waterbox/virtualjaguar/src/m68000/cpuemu.c +++ b/waterbox/virtualjaguar/src/m68000/cpuemu.c @@ -3,9 +3,6 @@ #include "inlines.h" #include "cputbl.h" #define CPUFUNC(x) x##_ff -#ifdef NOFLAGS -#include "noflags.h" -#endif const int areg_byteinc[] = { 1, 1, 1, 1, 1, 1, 1, 2 }; const int imm8_table[] = { 8, 1, 2, 3, 4, 5, 6, 7 }; @@ -67,25685 +64,6 @@ const int movem_next[256] = { 0xE0, 0xF0, 0xF0, 0xF2, 0xF0, 0xF4, 0xF4, 0xF6, 0xF0, 0xF8, 0xF8, 0xFA, 0xF8, 0xFC, 0xFC, 0xFE, }; - -#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 CPUFUNC(op_0_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_10_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_18_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_20_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 18; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_28_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_30_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 22; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_38_4)(uint32_t opcode) /* OR */ -{ - OpcodeFamily = 1; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_39_4)(uint32_t opcode) /* OR */ -{ - OpcodeFamily = 1; CurrentInstrCycles = 24; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_ilong(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_3c_4)(uint32_t opcode) /* ORSR */ -{ - OpcodeFamily = 4; CurrentInstrCycles = 20; -{ MakeSR(); -{ int16_t src = get_iword(2); - src &= 0xFF; - regs.sr |= src; - MakeFromSR(); -}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_40_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_50_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_58_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_60_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_68_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_70_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 22; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_78_4)(uint32_t opcode) /* OR */ -{ - OpcodeFamily = 1; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_79_4)(uint32_t opcode) /* OR */ -{ - OpcodeFamily = 1; CurrentInstrCycles = 24; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_ilong(4); -{ int16_t dst = m68k_read_memory_16(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_7c_4)(uint32_t opcode) /* ORSR */ -{ - OpcodeFamily = 4; CurrentInstrCycles = 20; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel18; } -{ MakeSR(); -{ int16_t src = get_iword(2); - regs.sr |= src; - MakeFromSR(); -}}}m68k_incpc(4); -endlabel18: ; -return 20; -} -unsigned long CPUFUNC(op_80_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_90_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_98_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_a0_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 30; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_a8_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 32; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_b0_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 34; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 34; -} -unsigned long CPUFUNC(op_b8_4)(uint32_t opcode) /* OR */ -{ - OpcodeFamily = 1; CurrentInstrCycles = 32; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_b9_4)(uint32_t opcode) /* OR */ -{ - OpcodeFamily = 1; CurrentInstrCycles = 36; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_ilong(6); -{ int32_t dst = m68k_read_memory_32(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(10); -return 36; -} -unsigned long CPUFUNC(op_100_4)(uint32_t opcode) /* BTST */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 6; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_108_4)(uint32_t opcode) /* MVPMR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 29; CurrentInstrCycles = 16; -{ uint32_t memp = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ uint16_t val = (m68k_read_memory_8(memp) << 8) + m68k_read_memory_8(memp + 2); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_110_4)(uint32_t opcode) /* BTST */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 8; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_118_4)(uint32_t opcode) /* BTST */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 8; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_120_4)(uint32_t opcode) /* BTST */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 10; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_128_4)(uint32_t opcode) /* BTST */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_130_4)(uint32_t opcode) /* BTST */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 14; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_138_4)(uint32_t opcode) /* BTST */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 21; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_139_4)(uint32_t opcode) /* BTST */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 21; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_13a_4)(uint32_t opcode) /* BTST */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = 2; - OpcodeFamily = 21; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_getpc () + 2; - dsta += (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_13b_4)(uint32_t opcode) /* BTST */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = 3; - OpcodeFamily = 21; CurrentInstrCycles = 14; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t dsta = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_13c_4)(uint32_t opcode) /* BTST */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 21; CurrentInstrCycles = 8; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ int8_t dst = get_ibyte(2); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_140_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 8; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= 31; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_dreg(regs, dstreg) = (dst); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_148_4)(uint32_t opcode) /* MVPMR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 29; CurrentInstrCycles = 24; -{ uint32_t memp = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ uint32_t val = (m68k_read_memory_8(memp) << 24) + (m68k_read_memory_8(memp + 2) << 16) - + (m68k_read_memory_8(memp + 4) << 8) + m68k_read_memory_8(memp + 6); - m68k_dreg(regs, dstreg) = (val); -}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_150_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_158_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_160_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 14; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_168_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_170_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 18; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_178_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 22; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_179_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 22; CurrentInstrCycles = 20; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_17a_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = 2; - OpcodeFamily = 22; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_getpc () + 2; - dsta += (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_17b_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = 3; - OpcodeFamily = 22; CurrentInstrCycles = 18; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t dsta = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_180_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 10; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_dreg(regs, dstreg) = (dst); - if ( src < 16 ) { m68k_incpc(2); return 8; } -}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_188_4)(uint32_t opcode) /* MVPRM */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 28; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); - uint32_t memp = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - m68k_write_memory_8(memp, src >> 8); m68k_write_memory_8(memp + 2, src); -}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_190_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_198_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_1a0_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 14; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_1a8_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_1b0_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 18; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_1b8_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 23; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_1b9_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 23; CurrentInstrCycles = 20; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_1ba_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = 2; - OpcodeFamily = 23; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_getpc () + 2; - dsta += (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_1bb_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = 3; - OpcodeFamily = 23; CurrentInstrCycles = 18; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t dsta = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_1c0_4)(uint32_t opcode) /* BSET */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 8; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t 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 8; -} -unsigned long CPUFUNC(op_1c8_4)(uint32_t opcode) /* MVPRM */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 28; CurrentInstrCycles = 24; -{{ int32_t src = m68k_dreg(regs, srcreg); - uint32_t memp = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - m68k_write_memory_8(memp, src >> 24); m68k_write_memory_8(memp + 2, src >> 16); - m68k_write_memory_8(memp + 4, src >> 8); m68k_write_memory_8(memp + 6, src); -}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_1d0_4)(uint32_t opcode) /* BSET */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_1d8_4)(uint32_t opcode) /* BSET */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_1e0_4)(uint32_t opcode) /* BSET */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 14; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_1e8_4)(uint32_t opcode) /* BSET */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_1f0_4)(uint32_t opcode) /* BSET */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 18; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_1f8_4)(uint32_t opcode) /* BSET */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 24; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_1f9_4)(uint32_t opcode) /* BSET */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 24; CurrentInstrCycles = 20; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_1fa_4)(uint32_t opcode) /* BSET */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = 2; - OpcodeFamily = 24; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_getpc () + 2; - dsta += (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_1fb_4)(uint32_t opcode) /* BSET */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = 3; - OpcodeFamily = 24; CurrentInstrCycles = 18; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t dsta = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_200_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_210_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_218_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_220_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 18; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_228_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_230_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 22; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_238_4)(uint32_t opcode) /* AND */ -{ - OpcodeFamily = 2; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_239_4)(uint32_t opcode) /* AND */ -{ - OpcodeFamily = 2; CurrentInstrCycles = 24; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_ilong(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_23c_4)(uint32_t opcode) /* ANDSR */ -{ - OpcodeFamily = 5; CurrentInstrCycles = 20; -{ MakeSR(); -{ int16_t src = get_iword(2); - src |= 0xFF00; - regs.sr &= src; - MakeFromSR(); -}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_240_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_250_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_258_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_260_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_268_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_270_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 22; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_278_4)(uint32_t opcode) /* AND */ -{ - OpcodeFamily = 2; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_279_4)(uint32_t opcode) /* AND */ -{ - OpcodeFamily = 2; CurrentInstrCycles = 24; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_ilong(4); -{ int16_t dst = m68k_read_memory_16(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_27c_4)(uint32_t opcode) /* ANDSR */ -{ - OpcodeFamily = 5; CurrentInstrCycles = 20; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel89; } -{ MakeSR(); -{ int16_t src = get_iword(2); - regs.sr &= src; - MakeFromSR(); -}}}m68k_incpc(4); -endlabel89: ; -return 20; -} -unsigned long CPUFUNC(op_280_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_290_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_298_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_2a0_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 30; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_2a8_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 32; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_2b0_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 34; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 34; -} -unsigned long CPUFUNC(op_2b8_4)(uint32_t opcode) /* AND */ -{ - OpcodeFamily = 2; CurrentInstrCycles = 32; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_2b9_4)(uint32_t opcode) /* AND */ -{ - OpcodeFamily = 2; CurrentInstrCycles = 36; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_ilong(6); -{ int32_t dst = m68k_read_memory_32(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(10); -return 36; -} -unsigned long CPUFUNC(op_400_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_410_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_418_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_420_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 18; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_428_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_430_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 22; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_438_4)(uint32_t opcode) /* SUB */ -{ - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_439_4)(uint32_t opcode) /* SUB */ -{ - OpcodeFamily = 7; CurrentInstrCycles = 24; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_ilong(4); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_440_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_450_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_458_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_460_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_468_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_470_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 22; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_478_4)(uint32_t opcode) /* SUB */ -{ - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_479_4)(uint32_t opcode) /* SUB */ -{ - OpcodeFamily = 7; CurrentInstrCycles = 24; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_ilong(4); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_480_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_490_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_498_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_4a0_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 30; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_4a8_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 32; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_4b0_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 34; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(8); -return 34; -} -unsigned long CPUFUNC(op_4b8_4)(uint32_t opcode) /* SUB */ -{ - OpcodeFamily = 7; CurrentInstrCycles = 32; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_4b9_4)(uint32_t opcode) /* SUB */ -{ - OpcodeFamily = 7; CurrentInstrCycles = 36; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_ilong(6); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(10); -return 36; -} -unsigned long CPUFUNC(op_600_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_610_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_618_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_620_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 18; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_628_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_630_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 22; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_638_4)(uint32_t opcode) /* ADD */ -{ - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_639_4)(uint32_t opcode) /* ADD */ -{ - OpcodeFamily = 11; CurrentInstrCycles = 24; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_ilong(4); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_640_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_650_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_658_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_660_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_668_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_670_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 22; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_678_4)(uint32_t opcode) /* ADD */ -{ - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_679_4)(uint32_t opcode) /* ADD */ -{ - OpcodeFamily = 11; CurrentInstrCycles = 24; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_ilong(4); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_680_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_690_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_698_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_6a0_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 30; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_6a8_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 32; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_6b0_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 34; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(8); -return 34; -} -unsigned long CPUFUNC(op_6b8_4)(uint32_t opcode) /* ADD */ -{ - OpcodeFamily = 11; CurrentInstrCycles = 32; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_6b9_4)(uint32_t opcode) /* ADD */ -{ - OpcodeFamily = 11; CurrentInstrCycles = 36; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_ilong(6); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(10); -return 36; -} -unsigned long CPUFUNC(op_800_4)(uint32_t opcode) /* BTST */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 10; -{{ int16_t src = get_iword(2); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}m68k_incpc(4); -return 10; -} -unsigned long CPUFUNC(op_810_4)(uint32_t opcode) /* BTST */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_818_4)(uint32_t opcode) /* BTST */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_820_4)(uint32_t opcode) /* BTST */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 14; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_828_4)(uint32_t opcode) /* BTST */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_830_4)(uint32_t opcode) /* BTST */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 21; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(6); -return 18; -} -unsigned long CPUFUNC(op_838_4)(uint32_t opcode) /* BTST */ -{ - OpcodeFamily = 21; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_839_4)(uint32_t opcode) /* BTST */ -{ - OpcodeFamily = 21; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_ilong(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(8); -return 20; -} -unsigned long CPUFUNC(op_83a_4)(uint32_t opcode) /* BTST */ -{ - uint32_t dstreg = 2; - OpcodeFamily = 21; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_getpc () + 4; - dsta += (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_83b_4)(uint32_t opcode) /* BTST */ -{ - uint32_t dstreg = 3; - OpcodeFamily = 21; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t tmppc = m68k_getpc() + 4; - uint32_t dsta = get_disp_ea_000(tmppc, get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}m68k_incpc(6); -return 18; -} -unsigned long CPUFUNC(op_83c_4)(uint32_t opcode) /* BTST */ -{ - OpcodeFamily = 21; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ int8_t dst = get_ibyte(4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}m68k_incpc(6); -return 12; -} -unsigned long CPUFUNC(op_840_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= 31; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_dreg(regs, dstreg) = (dst); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_850_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_858_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_860_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_868_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_870_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 22; CurrentInstrCycles = 22; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_878_4)(uint32_t opcode) /* BCHG */ -{ - OpcodeFamily = 22; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_879_4)(uint32_t opcode) /* BCHG */ -{ - OpcodeFamily = 22; CurrentInstrCycles = 24; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_ilong(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_87a_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t dstreg = 2; - OpcodeFamily = 22; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_getpc () + 4; - dsta += (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_87b_4)(uint32_t opcode) /* BCHG */ -{ - uint32_t dstreg = 3; - OpcodeFamily = 22; CurrentInstrCycles = 22; -{{ int16_t src = get_iword(2); -{ uint32_t tmppc = m68k_getpc() + 4; - uint32_t dsta = get_disp_ea_000(tmppc, get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uint32_t)dst & (1 << src)) >> src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_880_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 14; -{{ int16_t src = get_iword(2); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_dreg(regs, dstreg) = (dst); - if ( src < 16 ) { m68k_incpc(4); return 12; } -}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_890_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_898_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_8a0_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_8a8_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_8b0_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 23; CurrentInstrCycles = 22; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_8b8_4)(uint32_t opcode) /* BCLR */ -{ - OpcodeFamily = 23; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_8b9_4)(uint32_t opcode) /* BCLR */ -{ - OpcodeFamily = 23; CurrentInstrCycles = 24; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_ilong(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_8ba_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t dstreg = 2; - OpcodeFamily = 23; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_getpc () + 4; - dsta += (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_8bb_4)(uint32_t opcode) /* BCLR */ -{ - uint32_t dstreg = 3; - OpcodeFamily = 23; CurrentInstrCycles = 22; -{{ int16_t src = get_iword(2); -{ uint32_t tmppc = m68k_getpc() + 4; - uint32_t dsta = get_disp_ea_000(tmppc, get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_8c0_4)(uint32_t opcode) /* BSET */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ int32_t 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 12; -} -unsigned long CPUFUNC(op_8d0_4)(uint32_t opcode) /* BSET */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_8d8_4)(uint32_t opcode) /* BSET */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_8e0_4)(uint32_t opcode) /* BSET */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_8e8_4)(uint32_t opcode) /* BSET */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_8f0_4)(uint32_t opcode) /* BSET */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 24; CurrentInstrCycles = 22; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_8f8_4)(uint32_t opcode) /* BSET */ -{ - OpcodeFamily = 24; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_8f9_4)(uint32_t opcode) /* BSET */ -{ - OpcodeFamily = 24; CurrentInstrCycles = 24; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_ilong(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_8fa_4)(uint32_t opcode) /* BSET */ -{ - uint32_t dstreg = 2; - OpcodeFamily = 24; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_getpc () + 4; - dsta += (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_8fb_4)(uint32_t opcode) /* BSET */ -{ - uint32_t dstreg = 3; - OpcodeFamily = 24; CurrentInstrCycles = 22; -{{ int16_t src = get_iword(2); -{ uint32_t tmppc = m68k_getpc() + 4; - uint32_t dsta = get_disp_ea_000(tmppc, get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_write_memory_8(dsta,dst); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_a00_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ int8_t dst = m68k_dreg(regs, dstreg); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_a10_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_a18_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_a20_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 18; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_a28_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_a30_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 22; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_a38_4)(uint32_t opcode) /* EOR */ -{ - OpcodeFamily = 3; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_a39_4)(uint32_t opcode) /* EOR */ -{ - OpcodeFamily = 3; CurrentInstrCycles = 24; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_ilong(4); -{ int8_t dst = m68k_read_memory_8(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_a3c_4)(uint32_t opcode) /* EORSR */ -{ - OpcodeFamily = 6; CurrentInstrCycles = 20; -{ MakeSR(); -{ int16_t src = get_iword(2); - src &= 0xFF; - regs.sr ^= src; - MakeFromSR(); -}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_a40_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_a50_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_a58_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_a60_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_a68_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_a70_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 22; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_a78_4)(uint32_t opcode) /* EOR */ -{ - OpcodeFamily = 3; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_a79_4)(uint32_t opcode) /* EOR */ -{ - OpcodeFamily = 3; CurrentInstrCycles = 24; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_ilong(4); -{ int16_t dst = m68k_read_memory_16(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_a7c_4)(uint32_t opcode) /* EORSR */ -{ - OpcodeFamily = 6; CurrentInstrCycles = 20; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel204; } -{ MakeSR(); -{ int16_t src = get_iword(2); - regs.sr ^= src; - MakeFromSR(); -}}}m68k_incpc(4); -endlabel204: ; -return 20; -} -#endif - -#ifdef PART_2 -unsigned long CPUFUNC(op_a80_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 16; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_dreg(regs, dstreg); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_a90_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_a98_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_aa0_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 30; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_aa8_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 32; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_ab0_4)(uint32_t opcode) /* EOR */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 34; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 34; -} -unsigned long CPUFUNC(op_ab8_4)(uint32_t opcode) /* EOR */ -{ - OpcodeFamily = 3; CurrentInstrCycles = 32; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_ab9_4)(uint32_t opcode) /* EOR */ -{ - OpcodeFamily = 3; CurrentInstrCycles = 36; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_ilong(6); -{ int32_t dst = m68k_read_memory_32(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(10); -return 36; -} -unsigned long CPUFUNC(op_c00_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_c10_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 12; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_c18_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 12; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_c20_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 14; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_c28_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_c30_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 18; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 18; -} -unsigned long CPUFUNC(op_c38_4)(uint32_t opcode) /* CMP */ -{ - OpcodeFamily = 25; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_c39_4)(uint32_t opcode) /* CMP */ -{ - OpcodeFamily = 25; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_ilong(4); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(8); -return 20; -} -unsigned long CPUFUNC(op_c3a_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = 2; - OpcodeFamily = 25; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_getpc () + 4; - dsta += (int32_t)(int16_t)get_iword(4); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_c3b_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = 3; - OpcodeFamily = 25; CurrentInstrCycles = 18; -{{ int8_t src = get_ibyte(2); -{ uint32_t tmppc = m68k_getpc() + 4; - uint32_t dsta = get_disp_ea_000(tmppc, get_iword(4)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 18; -} -unsigned long CPUFUNC(op_c40_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_c50_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_c58_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_c60_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 14; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_c68_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_c70_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 18; -} -unsigned long CPUFUNC(op_c78_4)(uint32_t opcode) /* CMP */ -{ - OpcodeFamily = 25; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_c79_4)(uint32_t opcode) /* CMP */ -{ - OpcodeFamily = 25; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_ilong(4); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(8); -return 20; -} -unsigned long CPUFUNC(op_c7a_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = 2; - OpcodeFamily = 25; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_getpc () + 4; - dsta += (int32_t)(int16_t)get_iword(4); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_c7b_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = 3; - OpcodeFamily = 25; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t tmppc = m68k_getpc() + 4; - uint32_t dsta = get_disp_ea_000(tmppc, get_iword(4)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 18; -} -unsigned long CPUFUNC(op_c80_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 14; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(6); -return 14; -} -unsigned long CPUFUNC(op_c90_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 20; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_c98_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 20; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_ca0_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 22; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_ca8_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 24; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_cb0_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = opcode & 7; - OpcodeFamily = 25; CurrentInstrCycles = 26; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(8); -return 26; -} -unsigned long CPUFUNC(op_cb8_4)(uint32_t opcode) /* CMP */ -{ - OpcodeFamily = 25; CurrentInstrCycles = 24; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_cb9_4)(uint32_t opcode) /* CMP */ -{ - OpcodeFamily = 25; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_ilong(6); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(10); -return 28; -} -unsigned long CPUFUNC(op_cba_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = 2; - OpcodeFamily = 25; CurrentInstrCycles = 24; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_getpc () + 6; - dsta += (int32_t)(int16_t)get_iword(6); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_cbb_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = 3; - OpcodeFamily = 25; CurrentInstrCycles = 26; -{{ int32_t src = get_ilong(2); -{ uint32_t tmppc = m68k_getpc() + 6; - uint32_t dsta = get_disp_ea_000(tmppc, get_iword(6)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(8); -return 26; -} -unsigned long CPUFUNC(op_1000_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_1008_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 4; -{{ int8_t src = m68k_areg(regs, srcreg); -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_1010_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_1018_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_1020_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_1028_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_1030_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_1038_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_1039_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_103a_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_103b_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_103c_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_1080_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_1088_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int8_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_1090_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_1098_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_10a0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_10a8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_10b0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_10b8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_10b9_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_10ba_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_10bb_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_10bc_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_10c0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_10c8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int8_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_10d0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_10d8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_10e0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_10e8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_10f0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_10f8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_10f9_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_10fa_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_10fb_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_10fc_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_1100_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_1108_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int8_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_1110_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_1118_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_1120_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_1128_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_1130_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_1138_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_1139_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_113a_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_113b_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_113c_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_1140_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_1148_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int8_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_1150_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_1158_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_1160_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_1168_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_1170_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_1178_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_1179_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(6); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_117a_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_117b_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_117c_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_1180_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_1188_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ int8_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_1190_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_1198_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_11a0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_11a8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_11b0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 24; -} -unsigned long CPUFUNC(op_11b8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_11b9_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(8); -return 26; -} -unsigned long CPUFUNC(op_11ba_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_11bb_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 24; -} -unsigned long CPUFUNC(op_11bc_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(6); -return 18; -} -unsigned long CPUFUNC(op_11c0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_11c8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int8_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_11d0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_11d8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_11e0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_11e8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_11f0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_11f8_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_11f9_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(6); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_11fa_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_11fb_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_11fc_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_13c0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_13c8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int8_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_13d0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_13d8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_13e0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_13e8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_13f0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(8); -return 26; -} -unsigned long CPUFUNC(op_13f8_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_13f9_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_ilong(6); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(10); -return 28; -} -unsigned long CPUFUNC(op_13fa_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_13fb_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(8); -return 26; -} -unsigned long CPUFUNC(op_13fc_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ int8_t src = get_ibyte(2); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}m68k_incpc(8); -return 20; -} -unsigned long CPUFUNC(op_2000_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 4; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_2008_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 4; -{{ int32_t src = m68k_areg(regs, srcreg); -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_2010_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_2018_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_2020_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_2028_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_2030_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_2038_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_2039_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_203a_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_203b_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_203c_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int32_t src = get_ilong(2); -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(6); -return 12; -} -unsigned long CPUFUNC(op_2040_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 4; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_2048_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 4; -{{ int32_t src = m68k_areg(regs, srcreg); -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_2050_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_2058_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_2060_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_2068_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_2070_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_2078_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_2079_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_207a_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_207b_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 18; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_207c_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 12; -{{ int32_t src = get_ilong(2); -{ uint32_t val = src; - m68k_areg(regs, dstreg) = (val); -}}}m68k_incpc(6); -return 12; -} -unsigned long CPUFUNC(op_2080_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_2088_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int32_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_2090_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_2098_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_20a0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_20a8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_20b0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_20b8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_20b9_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_20ba_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_20bb_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_20bc_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_20c0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_20c8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int32_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_20d0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_20d8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_20e0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_20e8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_20f0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_20f8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_20f9_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_20fa_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_20fb_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_20fc_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_2100_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_2108_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int32_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_2110_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_2118_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_2120_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_2128_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_2130_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_2138_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -#endif - -#ifdef PART_3 -unsigned long CPUFUNC(op_2139_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_213a_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_213b_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_213c_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_2140_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_2148_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int32_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_2150_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_2158_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_2160_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_2168_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_2170_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 30; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_2178_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_2179_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 32; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(6); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_217a_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_217b_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 30; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_217c_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(6); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_2180_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_2188_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ int32_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_2190_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_2198_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_21a0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 28; -} -unsigned long CPUFUNC(op_21a8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 30; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_21b0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 32; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 32; -} -unsigned long CPUFUNC(op_21b8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 30; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_21b9_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 34; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 34; -} -unsigned long CPUFUNC(op_21ba_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 30; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_21bb_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 32; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 32; -} -unsigned long CPUFUNC(op_21bc_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(8); -return 26; -} -unsigned long CPUFUNC(op_21c0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_21c8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int32_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_21d0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_21d8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_21e0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_21e8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_21f0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 30; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_21f8_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_21f9_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 32; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(6); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_21fa_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_21fb_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 30; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_21fc_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(6); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_23c0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_23c8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ int32_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_23d0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_23d8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_23e0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 30; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 30; -} -unsigned long CPUFUNC(op_23e8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 32; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_23f0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 34; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 34; -} -unsigned long CPUFUNC(op_23f8_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 32; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_23f9_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 36; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_ilong(6); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(10); -return 36; -} -unsigned long CPUFUNC(op_23fa_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 32; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 32; -} -unsigned long CPUFUNC(op_23fb_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 34; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(8); -return 34; -} -unsigned long CPUFUNC(op_23fc_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ int32_t src = get_ilong(2); -{ uint32_t dsta = get_ilong(6); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}m68k_incpc(10); -return 28; -} -unsigned long CPUFUNC(op_3000_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_3008_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 4; -{{ int16_t src = m68k_areg(regs, srcreg); -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_3010_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_3018_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_3020_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_3028_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_3030_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_3038_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_3039_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_303a_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_303b_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_303c_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_3040_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_3048_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 4; -{{ int16_t src = m68k_areg(regs, srcreg); -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_3050_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_3058_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_3060_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_3068_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_3070_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_3078_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_3079_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_307a_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_307b_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_307c_4)(uint32_t opcode) /* MOVEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 31; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ uint32_t val = (int32_t)(int16_t)src; - m68k_areg(regs, dstreg) = (val); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_3080_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_3088_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int16_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_3090_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_3098_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_30a0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_30a8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_30b0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_30b8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_30b9_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_30ba_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_30bb_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_30bc_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_30c0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_30c8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int16_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_30d0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_30d8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_30e0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_30e8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_30f0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_30f8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_30f9_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_30fa_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_30fb_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_30fc_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg); - m68k_areg(regs, dstreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_3100_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_3108_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 8; -{{ int16_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_3110_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_3118_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_3120_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_3128_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_3130_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_3138_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_3139_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_313a_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_313b_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_313c_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_3140_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_3148_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int16_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_3150_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_3158_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_3160_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_3168_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_3170_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_3178_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_3179_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(6); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_317a_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_317b_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_317c_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_3180_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_3188_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 14; -{{ int16_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_3190_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_3198_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_31a0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_31a8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_31b0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 24; -} -unsigned long CPUFUNC(op_31b8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_31b9_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(8); -return 26; -} -unsigned long CPUFUNC(op_31ba_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_31bb_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 24; -} -unsigned long CPUFUNC(op_31bc_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(6); -return 18; -} -unsigned long CPUFUNC(op_31c0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_31c8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 12; -{{ int16_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_31d0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_31d8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_31e0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_31e8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_31f0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_31f8_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_31f9_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(6); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_31fa_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_31fb_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_31fc_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_33c0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_33c8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 16; -{{ int16_t src = m68k_areg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_33d0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_33d8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_33e0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_33e8_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_33f0_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(8); -return 26; -} -unsigned long CPUFUNC(op_33f8_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_33f9_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 28; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_ilong(6); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(10); -return 28; -} -unsigned long CPUFUNC(op_33fa_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(8); -return 24; -} -unsigned long CPUFUNC(op_33fb_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 26; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(8); -return 26; -} -unsigned long CPUFUNC(op_33fc_4)(uint32_t opcode) /* MOVE */ -{ - OpcodeFamily = 30; CurrentInstrCycles = 20; -{{ int16_t src = get_iword(2); -{ uint32_t dsta = get_ilong(4); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}m68k_incpc(8); -return 20; -} -unsigned long CPUFUNC(op_4000_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff); -}}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4010_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4018_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4020_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4028_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4030_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4038_4)(uint32_t opcode) /* NEGX */ -{ - OpcodeFamily = 16; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4039_4)(uint32_t opcode) /* NEGX */ -{ - OpcodeFamily = 16; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_4040_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((newv) & 0xffff); -}}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4050_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_write_memory_16(srca,newv); -}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4058_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_write_memory_16(srca,newv); -}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4060_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_write_memory_16(srca,newv); -}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4068_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_write_memory_16(srca,newv); -}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4070_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_write_memory_16(srca,newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4078_4)(uint32_t opcode) /* NEGX */ -{ - OpcodeFamily = 16; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_write_memory_16(srca,newv); -}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4079_4)(uint32_t opcode) /* NEGX */ -{ - OpcodeFamily = 16; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_write_memory_16(srca,newv); -}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_4080_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 6; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, srcreg) = (newv); -}}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_4090_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_write_memory_32(srca,newv); -}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_4098_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_write_memory_32(srca,newv); -}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_40a0_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_write_memory_32(srca,newv); -}}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_40a8_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_write_memory_32(srca,newv); -}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_40b0_4)(uint32_t opcode) /* NEGX */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 16; CurrentInstrCycles = 26; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_write_memory_32(srca,newv); -}}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_40b8_4)(uint32_t opcode) /* NEGX */ -{ - OpcodeFamily = 16; CurrentInstrCycles = 24; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_write_memory_32(srca,newv); -}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_40b9_4)(uint32_t opcode) /* NEGX */ -{ - OpcodeFamily = 16; CurrentInstrCycles = 28; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t newv = 0 - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_write_memory_32(srca,newv); -}}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_40c0_4)(uint32_t opcode) /* MVSR2 */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 32; CurrentInstrCycles = 6; -{{ MakeSR(); - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); -}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_40d0_4)(uint32_t opcode) /* MVSR2 */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 32; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - MakeSR(); - m68k_write_memory_16(srca,regs.sr); -}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_40d8_4)(uint32_t opcode) /* MVSR2 */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 32; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += 2; - MakeSR(); - m68k_write_memory_16(srca,regs.sr); -}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_40e0_4)(uint32_t opcode) /* MVSR2 */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 32; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; - m68k_areg (regs, srcreg) = srca; - MakeSR(); - m68k_write_memory_16(srca,regs.sr); -}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_40e8_4)(uint32_t opcode) /* MVSR2 */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 32; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); - MakeSR(); - m68k_write_memory_16(srca,regs.sr); -}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_40f0_4)(uint32_t opcode) /* MVSR2 */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 32; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; - MakeSR(); - m68k_write_memory_16(srca,regs.sr); -}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_40f8_4)(uint32_t opcode) /* MVSR2 */ -{ - OpcodeFamily = 32; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); - MakeSR(); - m68k_write_memory_16(srca,regs.sr); -}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_40f9_4)(uint32_t opcode) /* MVSR2 */ -{ - OpcodeFamily = 32; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); - MakeSR(); - m68k_write_memory_16(srca,regs.sr); -}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_4180_4)(uint32_t opcode) /* CHK */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 80; CurrentInstrCycles = 10; -{ uint32_t oldpc = m68k_getpc(); -{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel587; } - else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel587; } -}}}endlabel587: ; -return 10; -} -unsigned long CPUFUNC(op_4190_4)(uint32_t opcode) /* CHK */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 80; CurrentInstrCycles = 14; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel588; } - else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel588; } -}}}}endlabel588: ; -return 14; -} -unsigned long CPUFUNC(op_4198_4)(uint32_t opcode) /* CHK */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 80; CurrentInstrCycles = 14; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int16_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel589; } - else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel589; } -}}}}endlabel589: ; -return 14; -} -unsigned long CPUFUNC(op_41a0_4)(uint32_t opcode) /* CHK */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 80; CurrentInstrCycles = 16; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int16_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel590; } - else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel590; } -}}}}endlabel590: ; -return 16; -} -unsigned long CPUFUNC(op_41a8_4)(uint32_t opcode) /* CHK */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 80; CurrentInstrCycles = 18; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel591; } - else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel591; } -}}}}endlabel591: ; -return 18; -} -unsigned long CPUFUNC(op_41b0_4)(uint32_t opcode) /* CHK */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 80; CurrentInstrCycles = 20; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel592; } - else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel592; } -}}}}endlabel592: ; -return 20; -} -unsigned long CPUFUNC(op_41b8_4)(uint32_t opcode) /* CHK */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 80; CurrentInstrCycles = 18; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel593; } - else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel593; } -}}}}endlabel593: ; -return 18; -} -unsigned long CPUFUNC(op_41b9_4)(uint32_t opcode) /* CHK */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 80; CurrentInstrCycles = 22; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(6); - if ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel594; } - else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel594; } -}}}}endlabel594: ; -return 22; -} -unsigned long CPUFUNC(op_41ba_4)(uint32_t opcode) /* CHK */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 80; CurrentInstrCycles = 18; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel595; } - else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel595; } -}}}}endlabel595: ; -return 18; -} -unsigned long CPUFUNC(op_41bb_4)(uint32_t opcode) /* CHK */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 80; CurrentInstrCycles = 20; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel596; } - else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel596; } -}}}}endlabel596: ; -return 20; -} -unsigned long CPUFUNC(op_41bc_4)(uint32_t opcode) /* CHK */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 80; CurrentInstrCycles = 14; -{ uint32_t oldpc = m68k_getpc(); -{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel597; } - else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel597; } -}}}endlabel597: ; -return 14; -} -unsigned long CPUFUNC(op_41d0_4)(uint32_t opcode) /* LEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 56; CurrentInstrCycles = 4; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ m68k_areg(regs, dstreg) = (srca); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_41e8_4)(uint32_t opcode) /* LEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 56; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ m68k_areg(regs, dstreg) = (srca); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_41f0_4)(uint32_t opcode) /* LEA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 56; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ m68k_areg(regs, dstreg) = (srca); -}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_41f8_4)(uint32_t opcode) /* LEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 56; CurrentInstrCycles = 8; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ m68k_areg(regs, dstreg) = (srca); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_41f9_4)(uint32_t opcode) /* LEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 56; CurrentInstrCycles = 12; -{{ uint32_t srca = get_ilong(2); -{ m68k_areg(regs, dstreg) = (srca); -}}}m68k_incpc(6); -return 12; -} -unsigned long CPUFUNC(op_41fa_4)(uint32_t opcode) /* LEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 56; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ m68k_areg(regs, dstreg) = (srca); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_41fb_4)(uint32_t opcode) /* LEA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 56; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ m68k_areg(regs, dstreg) = (srca); -}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_4200_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 4; -{{ CLEAR_CZNV; - SET_ZFLG (((int8_t)(0)) == 0); - SET_NFLG (((int8_t)(0)) < 0); - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((0) & 0xff); -}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4210_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(0)) == 0); - SET_NFLG (((int8_t)(0)) < 0); - m68k_write_memory_8(srca,0); -}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4218_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; - int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(0)) == 0); - SET_NFLG (((int8_t)(0)) < 0); - m68k_write_memory_8(srca,0); -}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4220_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; - int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(0)) == 0); - SET_NFLG (((int8_t)(0)) < 0); - m68k_write_memory_8(srca,0); -}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4228_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); - int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(0)) == 0); - SET_NFLG (((int8_t)(0)) < 0); - m68k_write_memory_8(srca,0); -}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4230_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; - int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(0)) == 0); - SET_NFLG (((int8_t)(0)) < 0); - m68k_write_memory_8(srca,0); -}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4238_4)(uint32_t opcode) /* CLR */ -{ - OpcodeFamily = 18; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); - int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(0)) == 0); - SET_NFLG (((int8_t)(0)) < 0); - m68k_write_memory_8(srca,0); -}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4239_4)(uint32_t opcode) /* CLR */ -{ - OpcodeFamily = 18; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); - int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(0)) == 0); - SET_NFLG (((int8_t)(0)) < 0); - m68k_write_memory_8(srca,0); -}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_4240_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 4; -{{ CLEAR_CZNV; - SET_ZFLG (((int16_t)(0)) == 0); - SET_NFLG (((int16_t)(0)) < 0); - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((0) & 0xffff); -}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4250_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(0)) == 0); - SET_NFLG (((int16_t)(0)) < 0); - m68k_write_memory_16(srca,0); -}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4258_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += 2; - int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(0)) == 0); - SET_NFLG (((int16_t)(0)) < 0); - m68k_write_memory_16(srca,0); -}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4260_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; - m68k_areg (regs, srcreg) = srca; - int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(0)) == 0); - SET_NFLG (((int16_t)(0)) < 0); - m68k_write_memory_16(srca,0); -}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4268_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); - int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(0)) == 0); - SET_NFLG (((int16_t)(0)) < 0); - m68k_write_memory_16(srca,0); -}}m68k_incpc(4); -return 16; -} -#endif - -#ifdef PART_4 -unsigned long CPUFUNC(op_4270_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; - int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(0)) == 0); - SET_NFLG (((int16_t)(0)) < 0); - m68k_write_memory_16(srca,0); -}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4278_4)(uint32_t opcode) /* CLR */ -{ - OpcodeFamily = 18; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); - int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(0)) == 0); - SET_NFLG (((int16_t)(0)) < 0); - m68k_write_memory_16(srca,0); -}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4279_4)(uint32_t opcode) /* CLR */ -{ - OpcodeFamily = 18; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); - int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(0)) == 0); - SET_NFLG (((int16_t)(0)) < 0); - m68k_write_memory_16(srca,0); -}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_4280_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 6; -{{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(0)) == 0); - SET_NFLG (((int32_t)(0)) < 0); - m68k_dreg(regs, srcreg) = (0); -}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_4290_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); - int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(0)) == 0); - SET_NFLG (((int32_t)(0)) < 0); - m68k_write_memory_32(srca,0); -}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_4298_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += 4; - int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(0)) == 0); - SET_NFLG (((int32_t)(0)) < 0); - m68k_write_memory_32(srca,0); -}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_42a0_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; - m68k_areg (regs, srcreg) = srca; - int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(0)) == 0); - SET_NFLG (((int32_t)(0)) < 0); - m68k_write_memory_32(srca,0); -}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_42a8_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); - int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(0)) == 0); - SET_NFLG (((int32_t)(0)) < 0); - m68k_write_memory_32(srca,0); -}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_42b0_4)(uint32_t opcode) /* CLR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 18; CurrentInstrCycles = 26; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; - int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(0)) == 0); - SET_NFLG (((int32_t)(0)) < 0); - m68k_write_memory_32(srca,0); -}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_42b8_4)(uint32_t opcode) /* CLR */ -{ - OpcodeFamily = 18; CurrentInstrCycles = 24; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); - int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(0)) == 0); - SET_NFLG (((int32_t)(0)) < 0); - m68k_write_memory_32(srca,0); -}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_42b9_4)(uint32_t opcode) /* CLR */ -{ - OpcodeFamily = 18; CurrentInstrCycles = 28; -{{ uint32_t srca = get_ilong(2); - int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(0)) == 0); - SET_NFLG (((int32_t)(0)) < 0); - m68k_write_memory_32(srca,0); -}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_4400_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{{uint32_t dst = ((int8_t)(0)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(dst)) < 0; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff); -}}}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4410_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{{uint32_t dst = ((int8_t)(0)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(dst)) < 0; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(srca,dst); -}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4418_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{{uint32_t dst = ((int8_t)(0)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(dst)) < 0; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(srca,dst); -}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4420_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{{uint32_t dst = ((int8_t)(0)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(dst)) < 0; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(srca,dst); -}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4428_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{{uint32_t dst = ((int8_t)(0)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(dst)) < 0; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(srca,dst); -}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4430_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{{uint32_t dst = ((int8_t)(0)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(dst)) < 0; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(srca,dst); -}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4438_4)(uint32_t opcode) /* NEG */ -{ - OpcodeFamily = 15; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{{uint32_t dst = ((int8_t)(0)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(dst)) < 0; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(srca,dst); -}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4439_4)(uint32_t opcode) /* NEG */ -{ - OpcodeFamily = 15; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{{uint32_t dst = ((int8_t)(0)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(0)) < 0; - int flgn = ((int8_t)(dst)) < 0; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(srca,dst); -}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_4440_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{{uint32_t dst = ((int16_t)(0)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(dst)) < 0; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4450_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{{uint32_t dst = ((int16_t)(0)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(dst)) < 0; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(srca,dst); -}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4458_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{{uint32_t dst = ((int16_t)(0)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(dst)) < 0; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(srca,dst); -}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4460_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{{uint32_t dst = ((int16_t)(0)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(dst)) < 0; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(srca,dst); -}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4468_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{{uint32_t dst = ((int16_t)(0)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(dst)) < 0; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(srca,dst); -}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4470_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{{uint32_t dst = ((int16_t)(0)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(dst)) < 0; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(srca,dst); -}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4478_4)(uint32_t opcode) /* NEG */ -{ - OpcodeFamily = 15; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{{uint32_t dst = ((int16_t)(0)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(dst)) < 0; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(srca,dst); -}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4479_4)(uint32_t opcode) /* NEG */ -{ - OpcodeFamily = 15; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{{uint32_t dst = ((int16_t)(0)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(0)) < 0; - int flgn = ((int16_t)(dst)) < 0; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(srca,dst); -}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_4480_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 6; -{{ int32_t src = m68k_dreg(regs, srcreg); -{{uint32_t dst = ((int32_t)(0)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(dst)) < 0; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, srcreg) = (dst); -}}}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_4490_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{{uint32_t dst = ((int32_t)(0)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(dst)) < 0; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(srca,dst); -}}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_4498_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{{uint32_t dst = ((int32_t)(0)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(dst)) < 0; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(srca,dst); -}}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_44a0_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{{uint32_t dst = ((int32_t)(0)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(dst)) < 0; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(srca,dst); -}}}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_44a8_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{{uint32_t dst = ((int32_t)(0)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(dst)) < 0; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(srca,dst); -}}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_44b0_4)(uint32_t opcode) /* NEG */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 15; CurrentInstrCycles = 26; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{{uint32_t dst = ((int32_t)(0)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(dst)) < 0; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(srca,dst); -}}}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_44b8_4)(uint32_t opcode) /* NEG */ -{ - OpcodeFamily = 15; CurrentInstrCycles = 24; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{{uint32_t dst = ((int32_t)(0)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(dst)) < 0; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(srca,dst); -}}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_44b9_4)(uint32_t opcode) /* NEG */ -{ - OpcodeFamily = 15; CurrentInstrCycles = 28; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{{uint32_t dst = ((int32_t)(0)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(0)) < 0; - int flgn = ((int32_t)(dst)) < 0; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(0))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(srca,dst); -}}}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_44c0_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); - MakeSR(); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(); -}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_44d0_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - MakeSR(); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(); -}}}m68k_incpc(2); -return 16; -} -unsigned long CPUFUNC(op_44d8_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; - MakeSR(); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(); -}}}m68k_incpc(2); -return 16; -} -unsigned long CPUFUNC(op_44e0_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; - MakeSR(); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(); -}}}m68k_incpc(2); -return 18; -} -unsigned long CPUFUNC(op_44e8_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); - MakeSR(); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(); -}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_44f0_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 22; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); - MakeSR(); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(); -}}}m68k_incpc(4); -return 22; -} -unsigned long CPUFUNC(op_44f8_4)(uint32_t opcode) /* MV2SR */ -{ - OpcodeFamily = 33; CurrentInstrCycles = 20; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); - MakeSR(); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(); -}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_44f9_4)(uint32_t opcode) /* MV2SR */ -{ - OpcodeFamily = 33; CurrentInstrCycles = 24; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); - MakeSR(); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(); -}}}m68k_incpc(6); -return 24; -} -unsigned long CPUFUNC(op_44fa_4)(uint32_t opcode) /* MV2SR */ -{ - OpcodeFamily = 33; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); - MakeSR(); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(); -}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_44fb_4)(uint32_t opcode) /* MV2SR */ -{ - OpcodeFamily = 33; CurrentInstrCycles = 22; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); - MakeSR(); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(); -}}}m68k_incpc(4); -return 22; -} -unsigned long CPUFUNC(op_44fc_4)(uint32_t opcode) /* MV2SR */ -{ - OpcodeFamily = 33; CurrentInstrCycles = 16; -{{ int16_t src = get_iword(2); - MakeSR(); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(); -}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4600_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_NFLG (((int8_t)(dst)) < 0); - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4610_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_NFLG (((int8_t)(dst)) < 0); - m68k_write_memory_8(srca,dst); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4618_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_NFLG (((int8_t)(dst)) < 0); - m68k_write_memory_8(srca,dst); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4620_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_NFLG (((int8_t)(dst)) < 0); - m68k_write_memory_8(srca,dst); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4628_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_NFLG (((int8_t)(dst)) < 0); - m68k_write_memory_8(srca,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4630_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_NFLG (((int8_t)(dst)) < 0); - m68k_write_memory_8(srca,dst); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4638_4)(uint32_t opcode) /* NOT */ -{ - OpcodeFamily = 19; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_NFLG (((int8_t)(dst)) < 0); - m68k_write_memory_8(srca,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4639_4)(uint32_t opcode) /* NOT */ -{ - OpcodeFamily = 19; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(dst)) == 0); - SET_NFLG (((int8_t)(dst)) < 0); - m68k_write_memory_8(srca,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_4640_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_NFLG (((int16_t)(dst)) < 0); - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4650_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_NFLG (((int16_t)(dst)) < 0); - m68k_write_memory_16(srca,dst); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4658_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_NFLG (((int16_t)(dst)) < 0); - m68k_write_memory_16(srca,dst); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4660_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_NFLG (((int16_t)(dst)) < 0); - m68k_write_memory_16(srca,dst); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4668_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_NFLG (((int16_t)(dst)) < 0); - m68k_write_memory_16(srca,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4670_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_NFLG (((int16_t)(dst)) < 0); - m68k_write_memory_16(srca,dst); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4678_4)(uint32_t opcode) /* NOT */ -{ - OpcodeFamily = 19; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_NFLG (((int16_t)(dst)) < 0); - m68k_write_memory_16(srca,dst); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4679_4)(uint32_t opcode) /* NOT */ -{ - OpcodeFamily = 19; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_NFLG (((int16_t)(dst)) < 0); - m68k_write_memory_16(srca,dst); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_4680_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 6; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_NFLG (((int32_t)(dst)) < 0); - m68k_dreg(regs, srcreg) = (dst); -}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_4690_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_NFLG (((int32_t)(dst)) < 0); - m68k_write_memory_32(srca,dst); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_4698_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_NFLG (((int32_t)(dst)) < 0); - m68k_write_memory_32(srca,dst); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_46a0_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 22; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_NFLG (((int32_t)(dst)) < 0); - m68k_write_memory_32(srca,dst); -}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_46a8_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 24; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_NFLG (((int32_t)(dst)) < 0); - m68k_write_memory_32(srca,dst); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_46b0_4)(uint32_t opcode) /* NOT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 19; CurrentInstrCycles = 26; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_NFLG (((int32_t)(dst)) < 0); - m68k_write_memory_32(srca,dst); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_46b8_4)(uint32_t opcode) /* NOT */ -{ - OpcodeFamily = 19; CurrentInstrCycles = 24; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_NFLG (((int32_t)(dst)) < 0); - m68k_write_memory_32(srca,dst); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_46b9_4)(uint32_t opcode) /* NOT */ -{ - OpcodeFamily = 19; CurrentInstrCycles = 28; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ uint32_t dst = ~src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_NFLG (((int32_t)(dst)) < 0); - m68k_write_memory_32(srca,dst); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_46c0_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 12; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel688; } -{{ int16_t src = m68k_dreg(regs, srcreg); - regs.sr = src; - MakeFromSR(); -}}}m68k_incpc(2); -endlabel688: ; -return 12; -} -unsigned long CPUFUNC(op_46d0_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 16; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel689; } -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - regs.sr = src; - MakeFromSR(); -}}}}m68k_incpc(2); -endlabel689: ; -return 16; -} -unsigned long CPUFUNC(op_46d8_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 16; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel690; } -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; - regs.sr = src; - MakeFromSR(); -}}}}m68k_incpc(2); -endlabel690: ; -return 16; -} -unsigned long CPUFUNC(op_46e0_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 18; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel691; } -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; - regs.sr = src; - MakeFromSR(); -}}}}m68k_incpc(2); -endlabel691: ; -return 18; -} -unsigned long CPUFUNC(op_46e8_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 20; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel692; } -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); - regs.sr = src; - MakeFromSR(); -}}}}m68k_incpc(4); -endlabel692: ; -return 20; -} -unsigned long CPUFUNC(op_46f0_4)(uint32_t opcode) /* MV2SR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 33; CurrentInstrCycles = 22; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel693; } -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); - regs.sr = src; - MakeFromSR(); -}}}}m68k_incpc(4); -endlabel693: ; -return 22; -} -unsigned long CPUFUNC(op_46f8_4)(uint32_t opcode) /* MV2SR */ -{ - OpcodeFamily = 33; CurrentInstrCycles = 20; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel694; } -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); - regs.sr = src; - MakeFromSR(); -}}}}m68k_incpc(4); -endlabel694: ; -return 20; -} -unsigned long CPUFUNC(op_46f9_4)(uint32_t opcode) /* MV2SR */ -{ - OpcodeFamily = 33; CurrentInstrCycles = 24; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel695; } -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); - regs.sr = src; - MakeFromSR(); -}}}}m68k_incpc(6); -endlabel695: ; -return 24; -} -unsigned long CPUFUNC(op_46fa_4)(uint32_t opcode) /* MV2SR */ -{ - OpcodeFamily = 33; CurrentInstrCycles = 20; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel696; } -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); - regs.sr = src; - MakeFromSR(); -}}}}m68k_incpc(4); -endlabel696: ; -return 20; -} -unsigned long CPUFUNC(op_46fb_4)(uint32_t opcode) /* MV2SR */ -{ - OpcodeFamily = 33; CurrentInstrCycles = 22; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel697; } -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); - regs.sr = src; - MakeFromSR(); -}}}}m68k_incpc(4); -endlabel697: ; -return 22; -} -unsigned long CPUFUNC(op_46fc_4)(uint32_t opcode) /* MV2SR */ -{ - OpcodeFamily = 33; CurrentInstrCycles = 16; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel698; } -{{ int16_t src = get_iword(2); - regs.sr = src; - MakeFromSR(); -}}}m68k_incpc(4); -endlabel698: ; -return 16; -} -unsigned long CPUFUNC(op_4800_4)(uint32_t opcode) /* NBCD */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 17; CurrentInstrCycles = 6; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint16_t newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); - uint16_t newv_hi = - (src & 0xF0); - uint16_t newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff); -}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_4810_4)(uint32_t opcode) /* NBCD */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 17; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ uint16_t newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); - uint16_t newv_hi = - (src & 0xF0); - uint16_t newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4818_4)(uint32_t opcode) /* NBCD */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 17; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ uint16_t newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); - uint16_t newv_hi = - (src & 0xF0); - uint16_t newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4820_4)(uint32_t opcode) /* NBCD */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 17; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint16_t newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); - uint16_t newv_hi = - (src & 0xF0); - uint16_t newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4828_4)(uint32_t opcode) /* NBCD */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 17; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint16_t newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); - uint16_t newv_hi = - (src & 0xF0); - uint16_t newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4830_4)(uint32_t opcode) /* NBCD */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 17; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ uint16_t newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); - uint16_t newv_hi = - (src & 0xF0); - uint16_t newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4838_4)(uint32_t opcode) /* NBCD */ -{ - OpcodeFamily = 17; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint16_t newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); - uint16_t newv_hi = - (src & 0xF0); - uint16_t newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4839_4)(uint32_t opcode) /* NBCD */ -{ - OpcodeFamily = 17; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ uint16_t newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); - uint16_t newv_hi = - (src & 0xF0); - uint16_t newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(srca,newv); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_4840_4)(uint32_t opcode) /* SWAP */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 34; CurrentInstrCycles = 4; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_NFLG (((int32_t)(dst)) < 0); - m68k_dreg(regs, srcreg) = (dst); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4850_4)(uint32_t opcode) /* PEA */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 57; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - m68k_write_memory_32(dsta,srca); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4868_4)(uint32_t opcode) /* PEA */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 57; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ uint32_t dsta = m68k_areg(regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - m68k_write_memory_32(dsta,srca); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4870_4)(uint32_t opcode) /* PEA */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 57; CurrentInstrCycles = 22; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ uint32_t dsta = m68k_areg(regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - m68k_write_memory_32(dsta,srca); -}}}m68k_incpc(4); -return 22; -} -unsigned long CPUFUNC(op_4878_4)(uint32_t opcode) /* PEA */ -{ - OpcodeFamily = 57; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ uint32_t dsta = m68k_areg(regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - m68k_write_memory_32(dsta,srca); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4879_4)(uint32_t opcode) /* PEA */ -{ - OpcodeFamily = 57; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ uint32_t dsta = m68k_areg(regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - m68k_write_memory_32(dsta,srca); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_487a_4)(uint32_t opcode) /* PEA */ -{ - OpcodeFamily = 57; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ uint32_t dsta = m68k_areg(regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - m68k_write_memory_32(dsta,srca); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_487b_4)(uint32_t opcode) /* PEA */ -{ - OpcodeFamily = 57; CurrentInstrCycles = 22; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ uint32_t dsta = m68k_areg(regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - m68k_write_memory_32(dsta,srca); -}}}m68k_incpc(4); -return 22; -} -unsigned long CPUFUNC(op_4880_4)(uint32_t opcode) /* EXT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 36; CurrentInstrCycles = 4; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint16_t dst = (int16_t)(int8_t)src; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(dst)) == 0); - SET_NFLG (((int16_t)(dst)) < 0); - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4890_4)(uint32_t opcode) /* MVMLE */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 8; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg); -{ uint16_t dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { m68k_write_memory_16(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_write_memory_16(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(4); - return (8+retcycles); -} -unsigned long CPUFUNC(op_48a0_4)(uint32_t opcode) /* MVMLE */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 8; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg) - 0; -{ uint16_t amask = mask & 0xff, dmask = (mask >> 8) & 0xff; - while (amask) { srca -= 2; m68k_write_memory_16(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; retcycles+=4; } - while (dmask) { srca -= 2; m68k_write_memory_16(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; retcycles+=4; } - m68k_areg(regs, dstreg) = srca; -}}}m68k_incpc(4); - return (8+retcycles); -} -unsigned long CPUFUNC(op_48a8_4)(uint32_t opcode) /* MVMLE */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 12; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ uint16_t dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { m68k_write_memory_16(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_write_memory_16(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(6); - return (12+retcycles); -} -unsigned long CPUFUNC(op_48b0_4)(uint32_t opcode) /* MVMLE */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 14; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ uint16_t dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { m68k_write_memory_16(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_write_memory_16(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(6); - return (14+retcycles); -} -unsigned long CPUFUNC(op_48b8_4)(uint32_t opcode) /* MVMLE */ -{ - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 12; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = (int32_t)(int16_t)get_iword(4); -{ uint16_t dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { m68k_write_memory_16(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_write_memory_16(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(6); - return (12+retcycles); -} -unsigned long CPUFUNC(op_48b9_4)(uint32_t opcode) /* MVMLE */ -{ - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 16; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = get_ilong(4); -{ uint16_t dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { m68k_write_memory_16(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_write_memory_16(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(8); - return (16+retcycles); -} -unsigned long CPUFUNC(op_48c0_4)(uint32_t opcode) /* EXT */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 36; CurrentInstrCycles = 4; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dst = (int32_t)(int16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(dst)) == 0); - SET_NFLG (((int32_t)(dst)) < 0); - m68k_dreg(regs, srcreg) = (dst); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_48d0_4)(uint32_t opcode) /* MVMLE */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 8; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg); -{ uint16_t dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { m68k_write_memory_32(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_write_memory_32(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(4); - return (8+retcycles); -} -unsigned long CPUFUNC(op_48e0_4)(uint32_t opcode) /* MVMLE */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 8; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg) - 0; -{ uint16_t amask = mask & 0xff, dmask = (mask >> 8) & 0xff; - while (amask) { srca -= 4; m68k_write_memory_32(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; retcycles+=8; } - while (dmask) { srca -= 4; m68k_write_memory_32(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; retcycles+=8; } - m68k_areg(regs, dstreg) = srca; -}}}m68k_incpc(4); - return (8+retcycles); -} -unsigned long CPUFUNC(op_48e8_4)(uint32_t opcode) /* MVMLE */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 12; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ uint16_t dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { m68k_write_memory_32(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_write_memory_32(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(6); - return (12+retcycles); -} -unsigned long CPUFUNC(op_48f0_4)(uint32_t opcode) /* MVMLE */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 14; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ uint16_t dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { m68k_write_memory_32(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_write_memory_32(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(6); - return (14+retcycles); -} -unsigned long CPUFUNC(op_48f8_4)(uint32_t opcode) /* MVMLE */ -{ - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 12; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = (int32_t)(int16_t)get_iword(4); -{ uint16_t dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { m68k_write_memory_32(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_write_memory_32(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(6); - return (12+retcycles); -} -unsigned long CPUFUNC(op_48f9_4)(uint32_t opcode) /* MVMLE */ -{ - unsigned int retcycles = 0; - OpcodeFamily = 38; CurrentInstrCycles = 16; -{ uint16_t mask = get_iword(2); - retcycles = 0; -{ uint32_t srca = get_ilong(4); -{ uint16_t dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { m68k_write_memory_32(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_write_memory_32(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(8); - return (16+retcycles); -} -unsigned long CPUFUNC(op_4a00_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); -}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4a10_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_4a18_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_4a20_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); -}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_4a28_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_4a30_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); -}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_4a38_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_4a39_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_4a3a_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_4a3b_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); -}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_4a3c_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); -}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_4a40_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4a48_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 4; -{{ int16_t src = m68k_areg(regs, srcreg); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4a50_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_4a58_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_4a60_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_4a68_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_4a70_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_4a78_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_4a79_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_4a7a_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_4a7b_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_4a7c_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); -}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_4a80_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 4; -{{ int32_t src = m68k_dreg(regs, srcreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4a88_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 4; -{{ int32_t src = m68k_areg(regs, srcreg); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4a90_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4a98_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4aa0_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4aa8_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4ab0_4)(uint32_t opcode) /* TST */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 20; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4ab8_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4ab9_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_4aba_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_4abb_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 18; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4abc_4)(uint32_t opcode) /* TST */ -{ - OpcodeFamily = 20; CurrentInstrCycles = 12; -{{ int32_t src = get_ilong(2); - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); -}}m68k_incpc(6); -return 12; -} -unsigned long CPUFUNC(op_4ac0_4)(uint32_t opcode) /* TAS */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 98; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - src |= 0x80; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((src) & 0xff); -}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4ad0_4)(uint32_t opcode) /* TAS */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 98; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - src |= 0x80; - m68k_write_memory_8(srca,src); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4ad8_4)(uint32_t opcode) /* TAS */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 98; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - src |= 0x80; - m68k_write_memory_8(srca,src); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_4ae0_4)(uint32_t opcode) /* TAS */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 98; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - src |= 0x80; - m68k_write_memory_8(srca,src); -}}}m68k_incpc(2); -return 16; -} -unsigned long CPUFUNC(op_4ae8_4)(uint32_t opcode) /* TAS */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 98; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - src |= 0x80; - m68k_write_memory_8(srca,src); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4af0_4)(uint32_t opcode) /* TAS */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 98; CurrentInstrCycles = 20; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - src |= 0x80; - m68k_write_memory_8(srca,src); -}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_4af8_4)(uint32_t opcode) /* TAS */ -{ - OpcodeFamily = 98; CurrentInstrCycles = 18; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - src |= 0x80; - m68k_write_memory_8(srca,src); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4af9_4)(uint32_t opcode) /* TAS */ -{ - OpcodeFamily = 98; CurrentInstrCycles = 22; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - src |= 0x80; - m68k_write_memory_8(srca,src); -}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_4c90_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 12; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(4); - return (12+retcycles); -} -unsigned long CPUFUNC(op_4c98_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 12; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } - m68k_areg(regs, dstreg) = srca; -}}}m68k_incpc(4); - return (12+retcycles); -} -unsigned long CPUFUNC(op_4ca8_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 16; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(6); - return (16+retcycles); -} -unsigned long CPUFUNC(op_4cb0_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 18; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(6); - return (18+retcycles); -} -unsigned long CPUFUNC(op_4cb8_4)(uint32_t opcode) /* MVMEL */ -{ - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 16; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = (int32_t)(int16_t)get_iword(4); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(6); - return (16+retcycles); -} -unsigned long CPUFUNC(op_4cb9_4)(uint32_t opcode) /* MVMEL */ -{ - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 20; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = get_ilong(4); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(8); - return (20+retcycles); -} -unsigned long CPUFUNC(op_4cba_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = 2; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 16; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = m68k_getpc () + 4; - srca += (int32_t)(int16_t)get_iword(4); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(6); - return (16+retcycles); -} -unsigned long CPUFUNC(op_4cbb_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = 3; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 18; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t tmppc = m68k_getpc() + 4; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(4)); - BusCyclePenalty += 2; -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = (int32_t)(int16_t)m68k_read_memory_16(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } -}}}m68k_incpc(6); - return (18+retcycles); -} -unsigned long CPUFUNC(op_4cd0_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 12; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = m68k_read_memory_32(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = m68k_read_memory_32(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(4); - return (12+retcycles); -} -unsigned long CPUFUNC(op_4cd8_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 12; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = m68k_read_memory_32(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = m68k_read_memory_32(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } - m68k_areg(regs, dstreg) = srca; -}}}m68k_incpc(4); - return (12+retcycles); -} -unsigned long CPUFUNC(op_4ce8_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 16; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(4); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = m68k_read_memory_32(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = m68k_read_memory_32(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(6); - return (16+retcycles); -} -unsigned long CPUFUNC(op_4cf0_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 18; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); - BusCyclePenalty += 2; -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = m68k_read_memory_32(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = m68k_read_memory_32(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(6); - return (18+retcycles); -} -unsigned long CPUFUNC(op_4cf8_4)(uint32_t opcode) /* MVMEL */ -{ - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 16; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = (int32_t)(int16_t)get_iword(4); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = m68k_read_memory_32(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = m68k_read_memory_32(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(6); - return (16+retcycles); -} -unsigned long CPUFUNC(op_4cf9_4)(uint32_t opcode) /* MVMEL */ -{ - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 20; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = get_ilong(4); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = m68k_read_memory_32(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = m68k_read_memory_32(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(8); - return (20+retcycles); -} -unsigned long CPUFUNC(op_4cfa_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = 2; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 16; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t srca = m68k_getpc () + 4; - srca += (int32_t)(int16_t)get_iword(4); -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = m68k_read_memory_32(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = m68k_read_memory_32(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(6); - return (16+retcycles); -} -unsigned long CPUFUNC(op_4cfb_4)(uint32_t opcode) /* MVMEL */ -{ - uint32_t dstreg = 3; - unsigned int retcycles = 0; - OpcodeFamily = 37; CurrentInstrCycles = 18; -{ uint16_t mask = get_iword(2); - unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - retcycles = 0; -{ uint32_t tmppc = m68k_getpc() + 4; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(4)); - BusCyclePenalty += 2; -{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = m68k_read_memory_32(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } - while (amask) { m68k_areg(regs, movem_index1[amask]) = m68k_read_memory_32(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } -}}}m68k_incpc(6); - return (18+retcycles); -} -unsigned long CPUFUNC(op_4e40_4)(uint32_t opcode) /* TRAP */ -{ - uint32_t srcreg = (opcode & 15); - OpcodeFamily = 39; CurrentInstrCycles = 4; -{{ uint32_t src = srcreg; -m68k_incpc(2); - Exception(src+32,0,M68000_EXC_SRC_CPU); -}}return 4; -} -unsigned long CPUFUNC(op_4e50_4)(uint32_t opcode) /* LINK */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 47; CurrentInstrCycles = 18; -{{ uint32_t olda = m68k_areg(regs, 7) - 4; - m68k_areg (regs, 7) = olda; -{ int32_t src = m68k_areg(regs, srcreg); - m68k_write_memory_32(olda,src); - m68k_areg(regs, srcreg) = (m68k_areg(regs, 7)); -{ int16_t offs = get_iword(2); - m68k_areg(regs, 7) += offs; -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_4e58_4)(uint32_t opcode) /* UNLK */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 48; CurrentInstrCycles = 12; -{{ int32_t src = m68k_areg(regs, srcreg); - m68k_areg(regs, 7) = src; -{ uint32_t olda = m68k_areg(regs, 7); -{ int32_t old = m68k_read_memory_32(olda); - m68k_areg(regs, 7) += 4; - m68k_areg(regs, srcreg) = (old); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_4e60_4)(uint32_t opcode) /* MVR2USP */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 40; CurrentInstrCycles = 4; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel791; } -{{ int32_t src = m68k_areg(regs, srcreg); - regs.usp = src; -}}}m68k_incpc(2); -endlabel791: ; -return 4; -} -unsigned long CPUFUNC(op_4e68_4)(uint32_t opcode) /* MVUSP2R */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 41; CurrentInstrCycles = 4; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel792; } -{{ m68k_areg(regs, srcreg) = (regs.usp); -}}}m68k_incpc(2); -endlabel792: ; -return 4; -} -unsigned long CPUFUNC(op_4e70_4)(uint32_t opcode) /* RESET */ -{ - OpcodeFamily = 42; CurrentInstrCycles = 132; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel793; } -{}}m68k_incpc(2); -endlabel793: ; -return 132; -} -unsigned long CPUFUNC(op_4e71_4)(uint32_t opcode) /* NOP */ -{ - OpcodeFamily = 43; CurrentInstrCycles = 4; -{}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_4e72_4)(uint32_t opcode) /* STOP */ -{ - OpcodeFamily = 44; CurrentInstrCycles = 4; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel795; } -{{ int16_t src = get_iword(2); - regs.sr = src; - MakeFromSR(); - m68k_setstopped(1); -}}}m68k_incpc(4); -endlabel795: ; -return 4; -} -unsigned long CPUFUNC(op_4e73_4)(uint32_t opcode) /* RTE */ -{ - OpcodeFamily = 45; CurrentInstrCycles = 20; -{if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel796; } -{{ uint32_t sra = m68k_areg(regs, 7); -{ int16_t sr = m68k_read_memory_16(sra); - m68k_areg(regs, 7) += 2; -{ uint32_t pca = m68k_areg(regs, 7); -{ int32_t pc = m68k_read_memory_32(pca); - m68k_areg(regs, 7) += 4; - regs.sr = sr; m68k_setpc_rte(pc); - MakeFromSR(); -}}}}}}endlabel796: ; -return 20; -} -unsigned long CPUFUNC(op_4e74_4)(uint32_t opcode) /* RTD */ -{ - OpcodeFamily = 46; CurrentInstrCycles = 16; -{{ uint32_t pca = m68k_areg(regs, 7); -{ int32_t pc = m68k_read_memory_32(pca); - m68k_areg(regs, 7) += 4; -{ int16_t offs = get_iword(2); - m68k_areg(regs, 7) += offs; - m68k_setpc_rte(pc); -}}}}return 16; -} -unsigned long CPUFUNC(op_4e75_4)(uint32_t opcode) /* RTS */ -{ - OpcodeFamily = 49; CurrentInstrCycles = 16; -{ m68k_do_rts(); -}return 16; -} -unsigned long CPUFUNC(op_4e76_4)(uint32_t opcode) /* TRAPV */ -{ - OpcodeFamily = 50; CurrentInstrCycles = 4; -{m68k_incpc(2); - if (GET_VFLG) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel799; } -}endlabel799: ; -return 4; -} -unsigned long CPUFUNC(op_4e77_4)(uint32_t opcode) /* RTR */ -{ - OpcodeFamily = 51; CurrentInstrCycles = 20; -{ MakeSR(); -{ uint32_t sra = m68k_areg(regs, 7); -{ int16_t sr = m68k_read_memory_16(sra); - m68k_areg(regs, 7) += 2; -{ uint32_t pca = m68k_areg(regs, 7); -{ int32_t pc = m68k_read_memory_32(pca); - m68k_areg(regs, 7) += 4; - regs.sr &= 0xFF00; sr &= 0xFF; - regs.sr |= sr; m68k_setpc(pc); - MakeFromSR(); -}}}}}return 20; -} -unsigned long CPUFUNC(op_4e90_4)(uint32_t opcode) /* JSR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 52; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg); - uint32_t oldpc = m68k_getpc () + 2; - m68k_do_jsr(m68k_getpc() + 2, srca); -}}return 16; -} -unsigned long CPUFUNC(op_4ea8_4)(uint32_t opcode) /* JSR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 52; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); - uint32_t oldpc = m68k_getpc () + 4; - m68k_do_jsr(m68k_getpc() + 4, srca); -}}return 18; -} -unsigned long CPUFUNC(op_4eb0_4)(uint32_t opcode) /* JSR */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 52; CurrentInstrCycles = 22; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; - uint32_t oldpc = m68k_getpc () + 4; - m68k_do_jsr(m68k_getpc() + 4, srca); -}}return 22; -} -unsigned long CPUFUNC(op_4eb8_4)(uint32_t opcode) /* JSR */ -{ - OpcodeFamily = 52; CurrentInstrCycles = 18; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); - uint32_t oldpc = m68k_getpc () + 4; - m68k_do_jsr(m68k_getpc() + 4, srca); -}}return 18; -} -unsigned long CPUFUNC(op_4eb9_4)(uint32_t opcode) /* JSR */ -{ - OpcodeFamily = 52; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); - uint32_t oldpc = m68k_getpc () + 6; - m68k_do_jsr(m68k_getpc() + 6, srca); -}}return 20; -} -unsigned long CPUFUNC(op_4eba_4)(uint32_t opcode) /* JSR */ -{ - OpcodeFamily = 52; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); - uint32_t oldpc = m68k_getpc () + 4; - m68k_do_jsr(m68k_getpc() + 4, srca); -}}return 18; -} -unsigned long CPUFUNC(op_4ebb_4)(uint32_t opcode) /* JSR */ -{ - OpcodeFamily = 52; CurrentInstrCycles = 22; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; - uint32_t oldpc = m68k_getpc () + 4; - m68k_do_jsr(m68k_getpc() + 4, srca); -}}return 22; -} -unsigned long CPUFUNC(op_4ed0_4)(uint32_t opcode) /* JMP */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 53; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_setpc(srca); -}}return 8; -} -unsigned long CPUFUNC(op_4ee8_4)(uint32_t opcode) /* JMP */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 53; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); - m68k_setpc(srca); -}}return 10; -} -unsigned long CPUFUNC(op_4ef0_4)(uint32_t opcode) /* JMP */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 53; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; - m68k_setpc(srca); -}}return 14; -} -unsigned long CPUFUNC(op_4ef8_4)(uint32_t opcode) /* JMP */ -{ - OpcodeFamily = 53; CurrentInstrCycles = 10; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); - m68k_setpc(srca); -}}return 10; -} -unsigned long CPUFUNC(op_4ef9_4)(uint32_t opcode) /* JMP */ -{ - OpcodeFamily = 53; CurrentInstrCycles = 12; -{{ uint32_t srca = get_ilong(2); - m68k_setpc(srca); -}}return 12; -} -unsigned long CPUFUNC(op_4efa_4)(uint32_t opcode) /* JMP */ -{ - OpcodeFamily = 53; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); - m68k_setpc(srca); -}}return 10; -} -unsigned long CPUFUNC(op_4efb_4)(uint32_t opcode) /* JMP */ -{ - OpcodeFamily = 53; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; - m68k_setpc(srca); -}}return 14; -} -unsigned long CPUFUNC(op_5000_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 4; -{{ uint32_t src = srcreg; -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(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 CPUFUNC(op_5010_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5018_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -#endif - -#ifdef PART_5 -unsigned long CPUFUNC(op_5020_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 14; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_5028_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5030_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 18; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_5038_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ uint32_t src = srcreg; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5039_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_ilong(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_5040_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 4; -{{ uint32_t src = srcreg; -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(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 CPUFUNC(op_5048_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 12; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_5050_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5058_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5060_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 14; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_5068_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5070_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 18; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_5078_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ uint32_t src = srcreg; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5079_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_ilong(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_5080_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_5088_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 12; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_5090_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_5098_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_50a0_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 22; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_50a8_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 24; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_50b0_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 26; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_50b8_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 11; CurrentInstrCycles = 24; -{{ uint32_t src = srcreg; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_50b9_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 11; CurrentInstrCycles = 28; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_ilong(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_50c0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(0) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_50c8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(0)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel842: ; -return 12; -} -unsigned long CPUFUNC(op_50d0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(0) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_50d8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(0) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_50e0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(0) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_50e8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(0) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_50f0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(0) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_50f8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(0) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_50f9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(0) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_5100_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 4; -{{ uint32_t src = srcreg; -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(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 CPUFUNC(op_5110_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5118_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5120_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 14; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_5128_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5130_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 18; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_5138_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ uint32_t src = srcreg; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5139_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_ilong(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_5140_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 4; -{{ uint32_t src = srcreg; -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(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 CPUFUNC(op_5148_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 8; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_5150_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5158_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5160_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 14; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_5168_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5170_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 18; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_5178_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ uint32_t src = srcreg; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5179_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_ilong(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_5180_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_5188_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 8; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_5190_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_5198_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_51a0_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 22; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_51a8_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 24; -{{ uint32_t src = srcreg; -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_51b0_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 26; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_51b8_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 7; CurrentInstrCycles = 24; -{{ uint32_t src = srcreg; -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_51b9_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - OpcodeFamily = 7; CurrentInstrCycles = 28; -{{ uint32_t src = srcreg; -{ uint32_t dsta = get_ilong(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_51c0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(1) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_51c8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(1)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel877: ; -return 12; -} -unsigned long CPUFUNC(op_51d0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(1) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_51d8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(1) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_51e0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(1) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_51e8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(1) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_51f0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(1) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_51f8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(1) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_51f9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(1) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_52c0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(2) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_52c8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(2)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel886: ; -return 12; -} -unsigned long CPUFUNC(op_52d0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(2) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_52d8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(2) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_52e0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(2) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_52e8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(2) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_52f0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(2) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_52f8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(2) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_52f9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(2) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_53c0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(3) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_53c8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(3)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel895: ; -return 12; -} -unsigned long CPUFUNC(op_53d0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(3) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_53d8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(3) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_53e0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(3) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_53e8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(3) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_53f0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(3) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_53f8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(3) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_53f9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(3) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_54c0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(4) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_54c8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(4)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel904: ; -return 12; -} -unsigned long CPUFUNC(op_54d0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(4) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_54d8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(4) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_54e0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(4) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_54e8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(4) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_54f0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(4) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_54f8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(4) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_54f9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(4) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_55c0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(5) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_55c8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(5)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel913: ; -return 12; -} -unsigned long CPUFUNC(op_55d0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(5) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_55d8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(5) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_55e0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(5) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_55e8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(5) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_55f0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(5) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_55f8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(5) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_55f9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(5) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_56c0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(6) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_56c8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(6)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel922: ; -return 12; -} -unsigned long CPUFUNC(op_56d0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(6) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_56d8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(6) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_56e0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(6) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_56e8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(6) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_56f0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(6) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_56f8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(6) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_56f9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(6) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_57c0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(7) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_57c8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(7)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel931: ; -return 12; -} -unsigned long CPUFUNC(op_57d0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(7) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_57d8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(7) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_57e0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(7) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_57e8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(7) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_57f0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(7) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_57f8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(7) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_57f9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(7) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_58c0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(8) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_58c8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(8)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel940: ; -return 12; -} -unsigned long CPUFUNC(op_58d0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(8) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_58d8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(8) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_58e0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(8) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_58e8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(8) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_58f0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(8) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_58f8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(8) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_58f9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(8) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_59c0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(9) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_59c8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(9)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel949: ; -return 12; -} -unsigned long CPUFUNC(op_59d0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(9) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_59d8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(9) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_59e0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(9) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_59e8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(9) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_59f0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(9) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_59f8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(9) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_59f9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(9) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_5ac0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(10) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_5ac8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(10)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel958: ; -return 12; -} -unsigned long CPUFUNC(op_5ad0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(10) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5ad8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(10) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5ae0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(10) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_5ae8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(10) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5af0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(10) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_5af8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(10) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5af9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(10) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_5bc0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(11) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_5bc8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(11)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel967: ; -return 12; -} -unsigned long CPUFUNC(op_5bd0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(11) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5bd8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(11) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5be0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(11) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_5be8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(11) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5bf0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(11) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_5bf8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(11) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5bf9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(11) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_5cc0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(12) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_5cc8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(12)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel976: ; -return 12; -} -unsigned long CPUFUNC(op_5cd0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(12) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5cd8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(12) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5ce0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(12) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_5ce8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(12) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5cf0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(12) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_5cf8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(12) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5cf9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(12) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_5dc0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(13) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_5dc8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(13)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel985: ; -return 12; -} -unsigned long CPUFUNC(op_5dd0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(13) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5dd8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(13) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5de0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(13) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_5de8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(13) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5df0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(13) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_5df8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(13) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5df9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(13) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_5ec0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(14) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_5ec8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(14)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel994: ; -return 12; -} -unsigned long CPUFUNC(op_5ed0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(14) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5ed8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(14) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5ee0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(14) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_5ee8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(14) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5ef0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(14) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_5ef8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(14) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5ef9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(14) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_5fc0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 4; -{{{ int val = cctrue(15) ? 0xff : 0; - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); - if (val) { m68k_incpc(2) ; return 4+2; } -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_5fc8_4)(uint32_t opcode) /* DBcc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 58; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t offs = get_iword(2); - if (!cctrue(15)) { - m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); - if (src) { - m68k_incpc((int32_t)offs + 2); - return 10; - } else { - m68k_incpc(4); - return 14; - } - } -}}}m68k_incpc(4); -endlabel1003: ; -return 12; -} -unsigned long CPUFUNC(op_5fd0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int val = cctrue(15) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5fd8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int val = cctrue(15) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_5fe0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{ int val = cctrue(15) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(2); -return 14; -} -#endif - -#ifdef PART_6 -unsigned long CPUFUNC(op_5fe8_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(15) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5ff0_4)(uint32_t opcode) /* Scc */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 59; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int val = cctrue(15) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_5ff8_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int val = cctrue(15) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_5ff9_4)(uint32_t opcode) /* Scc */ -{ - OpcodeFamily = 59; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int val = cctrue(15) ? 0xff : 0; - m68k_write_memory_8(srca,val); -}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_6000_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(0)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1011: ; -return 12; -} -unsigned long CPUFUNC(op_6001_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(0)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1012: ; -return 8; -} -unsigned long CPUFUNC(op_60ff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(0)) goto endlabel1013; - 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,M68000_EXC_SRC_CPU); goto endlabel1013; -{ int32_t src = get_ilong(2); - if (!cctrue(0)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1013: ; -return 12; -} -unsigned long CPUFUNC(op_6100_4)(uint32_t opcode) /* BSR */ -{ - OpcodeFamily = 54; CurrentInstrCycles = 18; -{{ int16_t src = get_iword(2); - int32_t s = (int32_t)src + 2; - m68k_do_bsr(m68k_getpc() + 4, s); -}}return 18; -} -unsigned long CPUFUNC(op_6101_4)(uint32_t opcode) /* BSR */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 54; CurrentInstrCycles = 18; -{{ uint32_t src = srcreg; - int32_t s = (int32_t)src + 2; - m68k_do_bsr(m68k_getpc() + 2, s); -}}return 18; -} -unsigned long CPUFUNC(op_61ff_4)(uint32_t opcode) /* BSR */ -{ - OpcodeFamily = 54; CurrentInstrCycles = 18; -{{ int32_t src = get_ilong(2); - int32_t s = (int32_t)src + 2; - m68k_do_bsr(m68k_getpc() + 6, s); -}}return 18; -} -unsigned long CPUFUNC(op_6200_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(2)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1017: ; -return 12; -} -unsigned long CPUFUNC(op_6201_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(2)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1018: ; -return 8; -} -unsigned long CPUFUNC(op_62ff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(2)) goto endlabel1019; - 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,M68000_EXC_SRC_CPU); goto endlabel1019; -{ int32_t src = get_ilong(2); - if (!cctrue(2)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1019: ; -return 12; -} -unsigned long CPUFUNC(op_6300_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(3)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1020: ; -return 12; -} -unsigned long CPUFUNC(op_6301_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(3)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1021: ; -return 8; -} -unsigned long CPUFUNC(op_63ff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(3)) goto endlabel1022; - 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,M68000_EXC_SRC_CPU); goto endlabel1022; -{ int32_t src = get_ilong(2); - if (!cctrue(3)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1022: ; -return 12; -} -unsigned long CPUFUNC(op_6400_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(4)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1023: ; -return 12; -} -unsigned long CPUFUNC(op_6401_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(4)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1024: ; -return 8; -} -unsigned long CPUFUNC(op_64ff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(4)) goto endlabel1025; - 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,M68000_EXC_SRC_CPU); goto endlabel1025; -{ int32_t src = get_ilong(2); - if (!cctrue(4)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1025: ; -return 12; -} -unsigned long CPUFUNC(op_6500_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(5)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1026: ; -return 12; -} -unsigned long CPUFUNC(op_6501_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(5)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1027: ; -return 8; -} -unsigned long CPUFUNC(op_65ff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(5)) goto endlabel1028; - 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,M68000_EXC_SRC_CPU); goto endlabel1028; -{ int32_t src = get_ilong(2); - if (!cctrue(5)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1028: ; -return 12; -} -unsigned long CPUFUNC(op_6600_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(6)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1029: ; -return 12; -} -unsigned long CPUFUNC(op_6601_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(6)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1030: ; -return 8; -} -unsigned long CPUFUNC(op_66ff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(6)) goto endlabel1031; - 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,M68000_EXC_SRC_CPU); goto endlabel1031; -{ int32_t src = get_ilong(2); - if (!cctrue(6)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1031: ; -return 12; -} -unsigned long CPUFUNC(op_6700_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(7)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1032: ; -return 12; -} -unsigned long CPUFUNC(op_6701_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(7)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1033: ; -return 8; -} -unsigned long CPUFUNC(op_67ff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(7)) goto endlabel1034; - 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,M68000_EXC_SRC_CPU); goto endlabel1034; -{ int32_t src = get_ilong(2); - if (!cctrue(7)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1034: ; -return 12; -} -unsigned long CPUFUNC(op_6800_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(8)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1035: ; -return 12; -} -unsigned long CPUFUNC(op_6801_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(8)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1036: ; -return 8; -} -unsigned long CPUFUNC(op_68ff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(8)) goto endlabel1037; - 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,M68000_EXC_SRC_CPU); goto endlabel1037; -{ int32_t src = get_ilong(2); - if (!cctrue(8)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1037: ; -return 12; -} -unsigned long CPUFUNC(op_6900_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(9)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1038: ; -return 12; -} -unsigned long CPUFUNC(op_6901_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(9)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1039: ; -return 8; -} -unsigned long CPUFUNC(op_69ff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(9)) goto endlabel1040; - 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,M68000_EXC_SRC_CPU); goto endlabel1040; -{ int32_t src = get_ilong(2); - if (!cctrue(9)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1040: ; -return 12; -} -unsigned long CPUFUNC(op_6a00_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(10)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1041: ; -return 12; -} -unsigned long CPUFUNC(op_6a01_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(10)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1042: ; -return 8; -} -unsigned long CPUFUNC(op_6aff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(10)) goto endlabel1043; - 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,M68000_EXC_SRC_CPU); goto endlabel1043; -{ int32_t src = get_ilong(2); - if (!cctrue(10)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1043: ; -return 12; -} -unsigned long CPUFUNC(op_6b00_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(11)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1044: ; -return 12; -} -unsigned long CPUFUNC(op_6b01_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(11)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1045: ; -return 8; -} -unsigned long CPUFUNC(op_6bff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(11)) goto endlabel1046; - 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,M68000_EXC_SRC_CPU); goto endlabel1046; -{ int32_t src = get_ilong(2); - if (!cctrue(11)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1046: ; -return 12; -} -unsigned long CPUFUNC(op_6c00_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(12)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1047: ; -return 12; -} -unsigned long CPUFUNC(op_6c01_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(12)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1048: ; -return 8; -} -unsigned long CPUFUNC(op_6cff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(12)) goto endlabel1049; - 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,M68000_EXC_SRC_CPU); goto endlabel1049; -{ int32_t src = get_ilong(2); - if (!cctrue(12)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1049: ; -return 12; -} -unsigned long CPUFUNC(op_6d00_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(13)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1050: ; -return 12; -} -unsigned long CPUFUNC(op_6d01_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(13)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1051: ; -return 8; -} -unsigned long CPUFUNC(op_6dff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(13)) goto endlabel1052; - 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,M68000_EXC_SRC_CPU); goto endlabel1052; -{ int32_t src = get_ilong(2); - if (!cctrue(13)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1052: ; -return 12; -} -unsigned long CPUFUNC(op_6e00_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(14)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1053: ; -return 12; -} -unsigned long CPUFUNC(op_6e01_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(14)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1054: ; -return 8; -} -unsigned long CPUFUNC(op_6eff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(14)) goto endlabel1055; - 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,M68000_EXC_SRC_CPU); goto endlabel1055; -{ int32_t src = get_ilong(2); - if (!cctrue(14)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1055: ; -return 12; -} -unsigned long CPUFUNC(op_6f00_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); - if (!cctrue(15)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(4); -endlabel1056: ; -return 12; -} -unsigned long CPUFUNC(op_6f01_4)(uint32_t opcode) /* Bcc */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - OpcodeFamily = 55; CurrentInstrCycles = 8; -{{ uint32_t src = srcreg; - if (!cctrue(15)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(2); -endlabel1057: ; -return 8; -} -unsigned long CPUFUNC(op_6fff_4)(uint32_t opcode) /* Bcc */ -{ - OpcodeFamily = 55; CurrentInstrCycles = 12; -{ m68k_incpc(2); - if (!cctrue(15)) goto endlabel1058; - 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,M68000_EXC_SRC_CPU); goto endlabel1058; -{ int32_t src = get_ilong(2); - if (!cctrue(15)) goto didnt_jump; - m68k_incpc ((int32_t)src + 2); - return 10; -didnt_jump:; -}}m68k_incpc(6); -endlabel1058: ; -return 12; -} -unsigned long CPUFUNC(op_7000_4)(uint32_t opcode) /* MOVE */ -{ - uint32_t srcreg = (int32_t)(int8_t)(opcode & 255); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 30; CurrentInstrCycles = 4; -{{ uint32_t src = srcreg; -{ CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_8000_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_8010_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_8018_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_8020_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_8028_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_8030_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_8038_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_8039_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_803a_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_803b_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_803c_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ int8_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_8040_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_8050_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_8058_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_8060_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_8068_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_8070_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_8078_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_8079_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_807a_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_807b_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_807c_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_8080_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 8; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_8090_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_8098_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_80a0_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(2); -return 16; -} -unsigned long CPUFUNC(op_80a8_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_80b0_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 20; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_80b8_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 18; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_80b9_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 22; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_80ba_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_80bb_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 20; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_80bc_4)(uint32_t opcode) /* OR */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_dreg(regs, dstreg); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_80c0_4)(uint32_t opcode) /* DIVU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 60; CurrentInstrCycles = 4; -{ uint32_t oldpc = m68k_getpc(); -{ int16_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1093; } else { - uint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src; - uint32_t rem = (uint32_t)dst % (uint32_t)(uint16_t)src; - if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src); -}}}endlabel1093: ; - return (4+retcycles); -} -unsigned long CPUFUNC(op_80d0_4)(uint32_t opcode) /* DIVU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 60; CurrentInstrCycles = 8; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1094; } else { - uint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src; - uint32_t rem = (uint32_t)dst % (uint32_t)(uint16_t)src; - if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src); -}}}}endlabel1094: ; - return (8+retcycles); -} -unsigned long CPUFUNC(op_80d8_4)(uint32_t opcode) /* DIVU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 60; CurrentInstrCycles = 8; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1095; } else { - uint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src; - uint32_t rem = (uint32_t)dst % (uint32_t)(uint16_t)src; - if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src); -}}}}endlabel1095: ; - return (8+retcycles); -} -unsigned long CPUFUNC(op_80e0_4)(uint32_t opcode) /* DIVU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 60; CurrentInstrCycles = 10; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1096; } else { - uint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src; - uint32_t rem = (uint32_t)dst % (uint32_t)(uint16_t)src; - if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src); -}}}}endlabel1096: ; - return (10+retcycles); -} -unsigned long CPUFUNC(op_80e8_4)(uint32_t opcode) /* DIVU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 60; CurrentInstrCycles = 12; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1097; } else { - uint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src; - uint32_t rem = (uint32_t)dst % (uint32_t)(uint16_t)src; - if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src); -}}}}endlabel1097: ; - return (12+retcycles); -} -unsigned long CPUFUNC(op_80f0_4)(uint32_t opcode) /* DIVU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 60; CurrentInstrCycles = 14; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1098; } else { - uint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src; - uint32_t rem = (uint32_t)dst % (uint32_t)(uint16_t)src; - if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src); -}}}}endlabel1098: ; - return (14+retcycles); -} -unsigned long CPUFUNC(op_80f8_4)(uint32_t opcode) /* DIVU */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 60; CurrentInstrCycles = 12; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1099; } else { - uint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src; - uint32_t rem = (uint32_t)dst % (uint32_t)(uint16_t)src; - if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src); -}}}}endlabel1099: ; - return (12+retcycles); -} -unsigned long CPUFUNC(op_80f9_4)(uint32_t opcode) /* DIVU */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 60; CurrentInstrCycles = 16; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(6); - if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1100; } else { - uint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src; - uint32_t rem = (uint32_t)dst % (uint32_t)(uint16_t)src; - if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src); -}}}}endlabel1100: ; - return (16+retcycles); -} -unsigned long CPUFUNC(op_80fa_4)(uint32_t opcode) /* DIVU */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 60; CurrentInstrCycles = 12; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1101; } else { - uint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src; - uint32_t rem = (uint32_t)dst % (uint32_t)(uint16_t)src; - if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src); -}}}}endlabel1101: ; - return (12+retcycles); -} -unsigned long CPUFUNC(op_80fb_4)(uint32_t opcode) /* DIVU */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 60; CurrentInstrCycles = 14; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1102; } else { - uint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src; - uint32_t rem = (uint32_t)dst % (uint32_t)(uint16_t)src; - if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src); -}}}}endlabel1102: ; - return (14+retcycles); -} -unsigned long CPUFUNC(op_80fc_4)(uint32_t opcode) /* DIVU */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 60; CurrentInstrCycles = 8; -{ uint32_t oldpc = m68k_getpc(); -{ int16_t src = get_iword(2); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1103; } else { - uint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src; - uint32_t rem = (uint32_t)dst % (uint32_t)(uint16_t)src; - if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src); -}}}endlabel1103: ; - return (8+retcycles); -} -unsigned long CPUFUNC(op_8100_4)(uint32_t opcode) /* SBCD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 10; CurrentInstrCycles = 6; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ uint16_t newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0); - uint16_t newv_hi = (dst & 0xF0) - (src & 0xF0); - uint16_t newv, tmp_newv; - int bcd = 0; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo & 0xF0) { newv -= 6; bcd = 6; }; - if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; } - SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG ? 1 : 0)) & 0x300) > 0xFF); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_8108_4)(uint32_t opcode) /* SBCD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 10; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; -{ uint16_t newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0); - uint16_t newv_hi = (dst & 0xF0) - (src & 0xF0); - uint16_t newv, tmp_newv; - int bcd = 0; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo & 0xF0) { newv -= 6; bcd = 6; }; - if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; } - SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG ? 1 : 0)) & 0x300) > 0xFF); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - m68k_write_memory_8(dsta,newv); -}}}}}}m68k_incpc(2); -return 18; -} -unsigned long CPUFUNC(op_8110_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_8118_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_8120_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 14; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_8128_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_8130_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 18; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_8138_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_8139_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 1; CurrentInstrCycles = 20; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_8150_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_8158_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_8160_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 14; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_8168_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_8170_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 18; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_8178_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 1; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_8179_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 1; CurrentInstrCycles = 20; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int16_t dst = m68k_read_memory_16(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_8190_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 20; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_8198_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 20; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_81a0_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 22; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_81a8_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 24; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_81b0_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 1; CurrentInstrCycles = 26; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_81b8_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 1; CurrentInstrCycles = 24; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_81b9_4)(uint32_t opcode) /* OR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 1; CurrentInstrCycles = 28; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int32_t dst = m68k_read_memory_32(dsta); - src |= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_81c0_4)(uint32_t opcode) /* DIVS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 61; CurrentInstrCycles = 4; -{ uint32_t oldpc = m68k_getpc(); -{ int16_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1127; } else { - int32_t newv = (int32_t)dst / (int32_t)(int16_t)src; - uint16_t rem = (int32_t)dst % (int32_t)(int16_t)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - if (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivs68kCycles((int32_t)dst, (int16_t)src); -}}}endlabel1127: ; - return (4+retcycles); -} -unsigned long CPUFUNC(op_81d0_4)(uint32_t opcode) /* DIVS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 61; CurrentInstrCycles = 8; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1128; } else { - int32_t newv = (int32_t)dst / (int32_t)(int16_t)src; - uint16_t rem = (int32_t)dst % (int32_t)(int16_t)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - if (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivs68kCycles((int32_t)dst, (int16_t)src); -}}}}endlabel1128: ; - return (8+retcycles); -} -unsigned long CPUFUNC(op_81d8_4)(uint32_t opcode) /* DIVS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 61; CurrentInstrCycles = 8; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1129; } else { - int32_t newv = (int32_t)dst / (int32_t)(int16_t)src; - uint16_t rem = (int32_t)dst % (int32_t)(int16_t)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - if (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivs68kCycles((int32_t)dst, (int16_t)src); -}}}}endlabel1129: ; - return (8+retcycles); -} -unsigned long CPUFUNC(op_81e0_4)(uint32_t opcode) /* DIVS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 61; CurrentInstrCycles = 10; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(2); - if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1130; } else { - int32_t newv = (int32_t)dst / (int32_t)(int16_t)src; - uint16_t rem = (int32_t)dst % (int32_t)(int16_t)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - if (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivs68kCycles((int32_t)dst, (int16_t)src); -}}}}endlabel1130: ; - return (10+retcycles); -} -unsigned long CPUFUNC(op_81e8_4)(uint32_t opcode) /* DIVS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 61; CurrentInstrCycles = 12; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1131; } else { - int32_t newv = (int32_t)dst / (int32_t)(int16_t)src; - uint16_t rem = (int32_t)dst % (int32_t)(int16_t)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - if (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivs68kCycles((int32_t)dst, (int16_t)src); -}}}}endlabel1131: ; - return (12+retcycles); -} -unsigned long CPUFUNC(op_81f0_4)(uint32_t opcode) /* DIVS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 61; CurrentInstrCycles = 14; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1132; } else { - int32_t newv = (int32_t)dst / (int32_t)(int16_t)src; - uint16_t rem = (int32_t)dst % (int32_t)(int16_t)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - if (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivs68kCycles((int32_t)dst, (int16_t)src); -}}}}endlabel1132: ; - return (14+retcycles); -} -unsigned long CPUFUNC(op_81f8_4)(uint32_t opcode) /* DIVS */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 61; CurrentInstrCycles = 12; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1133; } else { - int32_t newv = (int32_t)dst / (int32_t)(int16_t)src; - uint16_t rem = (int32_t)dst % (int32_t)(int16_t)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - if (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivs68kCycles((int32_t)dst, (int16_t)src); -}}}}endlabel1133: ; - return (12+retcycles); -} -unsigned long CPUFUNC(op_81f9_4)(uint32_t opcode) /* DIVS */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 61; CurrentInstrCycles = 16; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(6); - if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1134; } else { - int32_t newv = (int32_t)dst / (int32_t)(int16_t)src; - uint16_t rem = (int32_t)dst % (int32_t)(int16_t)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - if (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivs68kCycles((int32_t)dst, (int16_t)src); -}}}}endlabel1134: ; - return (16+retcycles); -} -unsigned long CPUFUNC(op_81fa_4)(uint32_t opcode) /* DIVS */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 61; CurrentInstrCycles = 12; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1135; } else { - int32_t newv = (int32_t)dst / (int32_t)(int16_t)src; - uint16_t rem = (int32_t)dst % (int32_t)(int16_t)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - if (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivs68kCycles((int32_t)dst, (int16_t)src); -}}}}endlabel1135: ; - return (12+retcycles); -} -unsigned long CPUFUNC(op_81fb_4)(uint32_t opcode) /* DIVS */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 61; CurrentInstrCycles = 14; -{ uint32_t oldpc = m68k_getpc(); -{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1136; } else { - int32_t newv = (int32_t)dst / (int32_t)(int16_t)src; - uint16_t rem = (int32_t)dst % (int32_t)(int16_t)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - if (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivs68kCycles((int32_t)dst, (int16_t)src); -}}}}endlabel1136: ; - return (14+retcycles); -} -unsigned long CPUFUNC(op_81fc_4)(uint32_t opcode) /* DIVS */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 61; CurrentInstrCycles = 8; -{ uint32_t oldpc = m68k_getpc(); -{ int16_t src = get_iword(2); -{ int32_t dst = m68k_dreg(regs, dstreg); -m68k_incpc(4); - if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1137; } else { - int32_t newv = (int32_t)dst / (int32_t)(int16_t)src; - uint16_t rem = (int32_t)dst % (int32_t)(int16_t)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else - { - if (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_NFLG (((int16_t)(newv)) < 0); - newv = (newv & 0xffff) | ((uint32_t)rem << 16); - m68k_dreg(regs, dstreg) = (newv); - } - } - retcycles = getDivs68kCycles((int32_t)dst, (int16_t)src); -}}}endlabel1137: ; - return (8+retcycles); -} -unsigned long CPUFUNC(op_9000_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(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 CPUFUNC(op_9010_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_9018_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_9020_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_9028_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_9030_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_9038_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_9039_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_903a_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_903b_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_903c_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_9040_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(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 CPUFUNC(op_9048_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 4; -{{ int16_t src = m68k_areg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(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 CPUFUNC(op_9050_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_9058_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_9060_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_9068_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_9070_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_9078_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_9079_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_907a_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_907b_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_907c_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_9080_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 8; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_9088_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 8; -{{ int32_t src = m68k_areg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_9090_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_9098_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_90a0_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(2); -return 16; -} -unsigned long CPUFUNC(op_90a8_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_90b0_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_90b8_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 18; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_90b9_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 22; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_90ba_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_90bb_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_90bc_4)(uint32_t opcode) /* SUB */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_90c0_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 8; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_90c8_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 8; -{{ int16_t src = m68k_areg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_90d0_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_90d8_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_90e0_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_90e8_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_90f0_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_90f8_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_90f9_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_90fa_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_90fb_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 18; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_90fc_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_9100_4)(uint32_t opcode) /* SUBX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 9; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = dst - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_9108_4)(uint32_t opcode) /* SUBX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 9; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; -{ uint32_t newv = dst - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 18; -} -unsigned long CPUFUNC(op_9110_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_9118_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_9120_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 14; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_9128_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_9130_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 18; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_9138_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_9139_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_9140_4)(uint32_t opcode) /* SUBX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 9; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = dst - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_9148_4)(uint32_t opcode) /* SUBX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 9; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; -{ uint32_t newv = dst - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 18; -} -unsigned long CPUFUNC(op_9150_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_9158_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_9160_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 14; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_9168_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_9170_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 18; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_9178_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 7; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_9179_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_9180_4)(uint32_t opcode) /* SUBX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 9; CurrentInstrCycles = 8; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = dst - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_9188_4)(uint32_t opcode) /* SUBX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 9; CurrentInstrCycles = 30; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; -{ uint32_t newv = dst - src - (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 30; -} -unsigned long CPUFUNC(op_9190_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_9198_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 20; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_91a0_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 22; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_91a8_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 24; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_91b0_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 7; CurrentInstrCycles = 26; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_91b8_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 7; CurrentInstrCycles = 24; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_91b9_4)(uint32_t opcode) /* SUB */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 7; CurrentInstrCycles = 28; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_91c0_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 8; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_91c8_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 8; -{{ int32_t src = m68k_areg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_91d0_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_91d8_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_91e0_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 16; -} -unsigned long CPUFUNC(op_91e8_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_91f0_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 20; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_91f8_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 18; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_91f9_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 22; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_91fa_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_91fb_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 20; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_91fc_4)(uint32_t opcode) /* SUBA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 8; CurrentInstrCycles = 16; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst - src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_b000_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_b010_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_b018_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_b020_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_b028_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_b030_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_b038_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_b039_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_b03a_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_b03b_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 14; -} -#endif - -#ifdef PART_7 -unsigned long CPUFUNC(op_b03c_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ int8_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_b040_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_b048_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 4; -{{ int16_t src = m68k_areg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_b050_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_b058_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_b060_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_b068_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_b070_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_b078_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_b079_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_b07a_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_b07b_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_b07c_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_b080_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 6; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_b088_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 6; -{{ int32_t src = m68k_areg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_b090_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_b098_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_b0a0_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 16; -} -unsigned long CPUFUNC(op_b0a8_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_b0b0_4)(uint32_t opcode) /* CMP */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 20; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_b0b8_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 18; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_b0b9_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 22; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_b0ba_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_b0bb_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 20; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_b0bc_4)(uint32_t opcode) /* CMP */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 25; CurrentInstrCycles = 14; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_dreg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(6); -return 14; -} -unsigned long CPUFUNC(op_b0c0_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 6; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_b0c8_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 6; -{{ int16_t src = m68k_areg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_b0d0_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_b0d8_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_b0e0_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_b0e8_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_b0f0_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 16; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_b0f8_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 14; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_b0f9_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 18; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 18; -} -unsigned long CPUFUNC(op_b0fa_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_b0fb_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 16; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_b0fc_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 10; -{{ int16_t src = get_iword(2); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(4); -return 10; -} -unsigned long CPUFUNC(op_b100_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ int8_t dst = m68k_dreg(regs, dstreg); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_b108_4)(uint32_t opcode) /* CMPM */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 26; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; -{{uint32_t newv = ((int8_t)(dst)) - ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint8_t)(src)) > ((uint8_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_b110_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_b118_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_b120_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 14; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_b128_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_b130_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 18; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_b138_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 3; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_b139_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 3; CurrentInstrCycles = 20; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_b140_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_b148_4)(uint32_t opcode) /* CMPM */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 26; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; -{{uint32_t newv = ((int16_t)(dst)) - ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint16_t)(src)) > ((uint16_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_b150_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_b158_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_b160_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 14; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_b168_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_b170_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 18; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_b178_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 3; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_b179_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 3; CurrentInstrCycles = 20; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int16_t dst = m68k_read_memory_16(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_b180_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 8; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_b188_4)(uint32_t opcode) /* CMPM */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 26; CurrentInstrCycles = 20; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_b190_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 20; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_b198_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 20; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_b1a0_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 22; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_b1a8_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 24; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_b1b0_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 3; CurrentInstrCycles = 26; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_b1b8_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 3; CurrentInstrCycles = 24; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_b1b9_4)(uint32_t opcode) /* EOR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 3; CurrentInstrCycles = 28; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int32_t dst = m68k_read_memory_32(dsta); - src ^= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_b1c0_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 6; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_b1c8_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 6; -{{ int32_t src = m68k_areg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_b1d0_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_b1d8_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_b1e0_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(2); -return 16; -} -unsigned long CPUFUNC(op_b1e8_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_b1f0_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 20; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_b1f8_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 18; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_b1f9_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 22; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_b1fa_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_b1fb_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 20; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_b1fc_4)(uint32_t opcode) /* CMPA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 27; CurrentInstrCycles = 14; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_areg(regs, dstreg); -{{uint32_t newv = ((int32_t)(dst)) - ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uint32_t)(src)) > ((uint32_t)(dst))); - SET_NFLG (flgn != 0); -}}}}}}m68k_incpc(6); -return 14; -} -unsigned long CPUFUNC(op_c000_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_c010_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_c018_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_c020_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_c028_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_c030_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_c038_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_c039_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_c03a_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_c03b_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_c03c_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ int8_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_c040_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_c050_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_c058_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_c060_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_c068_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_c070_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_c078_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_c079_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_c07a_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_c07b_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_c07c_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_c080_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 8; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_c090_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_c098_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_c0a0_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(2); -return 16; -} -unsigned long CPUFUNC(op_c0a8_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_c0b0_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 20; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_c0b8_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 18; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_c0b9_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 22; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_c0ba_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_c0bb_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 20; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_c0bc_4)(uint32_t opcode) /* AND */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_dreg(regs, dstreg); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_c0c0_4)(uint32_t opcode) /* MULU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 62; CurrentInstrCycles = 38; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - while (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; } -}}}}m68k_incpc(2); - return (38+retcycles*2); -} -unsigned long CPUFUNC(op_c0d0_4)(uint32_t opcode) /* MULU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 62; CurrentInstrCycles = 42; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - while (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; } -}}}}}m68k_incpc(2); - return (42+retcycles*2); -} -unsigned long CPUFUNC(op_c0d8_4)(uint32_t opcode) /* MULU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 62; CurrentInstrCycles = 42; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - while (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; } -}}}}}m68k_incpc(2); - return (42+retcycles*2); -} -unsigned long CPUFUNC(op_c0e0_4)(uint32_t opcode) /* MULU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 62; CurrentInstrCycles = 44; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - while (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; } -}}}}}m68k_incpc(2); - return (44+retcycles*2); -} -unsigned long CPUFUNC(op_c0e8_4)(uint32_t opcode) /* MULU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 62; CurrentInstrCycles = 46; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - while (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; } -}}}}}m68k_incpc(4); - return (46+retcycles*2); -} -unsigned long CPUFUNC(op_c0f0_4)(uint32_t opcode) /* MULU */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 62; CurrentInstrCycles = 48; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - while (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; } -}}}}}m68k_incpc(4); - return (48+retcycles*2); -} -unsigned long CPUFUNC(op_c0f8_4)(uint32_t opcode) /* MULU */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 62; CurrentInstrCycles = 46; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - while (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; } -}}}}}m68k_incpc(4); - return (46+retcycles*2); -} -unsigned long CPUFUNC(op_c0f9_4)(uint32_t opcode) /* MULU */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 62; CurrentInstrCycles = 50; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - while (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; } -}}}}}m68k_incpc(6); - return (50+retcycles*2); -} -unsigned long CPUFUNC(op_c0fa_4)(uint32_t opcode) /* MULU */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 62; CurrentInstrCycles = 46; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - while (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; } -}}}}}m68k_incpc(4); - return (46+retcycles*2); -} -unsigned long CPUFUNC(op_c0fb_4)(uint32_t opcode) /* MULU */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 62; CurrentInstrCycles = 48; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - while (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; } -}}}}}m68k_incpc(4); - return (48+retcycles*2); -} -unsigned long CPUFUNC(op_c0fc_4)(uint32_t opcode) /* MULU */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 62; CurrentInstrCycles = 42; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - while (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; } -}}}}m68k_incpc(4); - return (42+retcycles*2); -} -unsigned long CPUFUNC(op_c100_4)(uint32_t opcode) /* ABCD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 14; CurrentInstrCycles = 6; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ uint16_t newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0); - uint16_t newv_hi = (src & 0xF0) + (dst & 0xF0); - uint16_t newv, tmp_newv; - int cflg; - newv = tmp_newv = newv_hi + newv_lo; if (newv_lo > 9) { newv += 6; } - cflg = (newv & 0x3F0) > 0x90; - if (cflg) newv += 0x60; - SET_CFLG (cflg); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_c108_4)(uint32_t opcode) /* ABCD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 14; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; -{ uint16_t newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0); - uint16_t newv_hi = (src & 0xF0) + (dst & 0xF0); - uint16_t newv, tmp_newv; - int cflg; - newv = tmp_newv = newv_hi + newv_lo; if (newv_lo > 9) { newv += 6; } - cflg = (newv & 0x3F0) > 0x90; - if (cflg) newv += 0x60; - SET_CFLG (cflg); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}m68k_incpc(2); -return 18; -} -unsigned long CPUFUNC(op_c110_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_c118_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_c120_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 14; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_c128_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_c130_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 18; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_c138_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_c139_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 2; CurrentInstrCycles = 20; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int8_t dst = m68k_read_memory_8(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int8_t)(src)) == 0); - SET_NFLG (((int8_t)(src)) < 0); - m68k_write_memory_8(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_c140_4)(uint32_t opcode) /* EXG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 35; CurrentInstrCycles = 6; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); - m68k_dreg(regs, srcreg) = (dst); - m68k_dreg(regs, dstreg) = (src); -}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_c148_4)(uint32_t opcode) /* EXG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 35; CurrentInstrCycles = 6; -{{ int32_t src = m68k_areg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); - m68k_areg(regs, srcreg) = (dst); - m68k_areg(regs, dstreg) = (src); -}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_c150_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_c158_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_c160_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 14; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_c168_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_c170_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 18; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_c178_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 2; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_c179_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 2; CurrentInstrCycles = 20; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int16_t dst = m68k_read_memory_16(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(src)) == 0); - SET_NFLG (((int16_t)(src)) < 0); - m68k_write_memory_16(dsta,src); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_c188_4)(uint32_t opcode) /* EXG */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 35; CurrentInstrCycles = 6; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); - m68k_dreg(regs, srcreg) = (dst); - m68k_areg(regs, dstreg) = (src); -}}}m68k_incpc(2); -return 6; -} -unsigned long CPUFUNC(op_c190_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 20; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_c198_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 20; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_c1a0_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 22; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_c1a8_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 24; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_c1b0_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 2; CurrentInstrCycles = 26; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_c1b8_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 2; CurrentInstrCycles = 24; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_c1b9_4)(uint32_t opcode) /* AND */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 2; CurrentInstrCycles = 28; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int32_t dst = m68k_read_memory_32(dsta); - src &= dst; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(src)) == 0); - SET_NFLG (((int32_t)(src)) < 0); - m68k_write_memory_32(dsta,src); -}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_c1c0_4)(uint32_t opcode) /* MULS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 63; CurrentInstrCycles = 38; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src; - uint32_t src2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - src2 = ((uint32_t)src) << 1; - while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; } -}}}}m68k_incpc(2); - return (38+retcycles*2); -} -unsigned long CPUFUNC(op_c1d0_4)(uint32_t opcode) /* MULS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 63; CurrentInstrCycles = 42; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src; - uint32_t src2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - src2 = ((uint32_t)src) << 1; - while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; } -}}}}}m68k_incpc(2); - return (42+retcycles*2); -} -unsigned long CPUFUNC(op_c1d8_4)(uint32_t opcode) /* MULS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 63; CurrentInstrCycles = 42; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src; - uint32_t src2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - src2 = ((uint32_t)src) << 1; - while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; } -}}}}}m68k_incpc(2); - return (42+retcycles*2); -} -unsigned long CPUFUNC(op_c1e0_4)(uint32_t opcode) /* MULS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 63; CurrentInstrCycles = 44; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src; - uint32_t src2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - src2 = ((uint32_t)src) << 1; - while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; } -}}}}}m68k_incpc(2); - return (44+retcycles*2); -} -unsigned long CPUFUNC(op_c1e8_4)(uint32_t opcode) /* MULS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 63; CurrentInstrCycles = 46; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src; - uint32_t src2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - src2 = ((uint32_t)src) << 1; - while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; } -}}}}}m68k_incpc(4); - return (46+retcycles*2); -} -unsigned long CPUFUNC(op_c1f0_4)(uint32_t opcode) /* MULS */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 63; CurrentInstrCycles = 48; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src; - uint32_t src2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - src2 = ((uint32_t)src) << 1; - while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; } -}}}}}m68k_incpc(4); - return (48+retcycles*2); -} -unsigned long CPUFUNC(op_c1f8_4)(uint32_t opcode) /* MULS */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 63; CurrentInstrCycles = 46; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src; - uint32_t src2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - src2 = ((uint32_t)src) << 1; - while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; } -}}}}}m68k_incpc(4); - return (46+retcycles*2); -} -unsigned long CPUFUNC(op_c1f9_4)(uint32_t opcode) /* MULS */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 63; CurrentInstrCycles = 50; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src; - uint32_t src2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - src2 = ((uint32_t)src) << 1; - while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; } -}}}}}m68k_incpc(6); - return (50+retcycles*2); -} -unsigned long CPUFUNC(op_c1fa_4)(uint32_t opcode) /* MULS */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 63; CurrentInstrCycles = 46; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src; - uint32_t src2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - src2 = ((uint32_t)src) << 1; - while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; } -}}}}}m68k_incpc(4); - return (46+retcycles*2); -} -unsigned long CPUFUNC(op_c1fb_4)(uint32_t opcode) /* MULS */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 63; CurrentInstrCycles = 48; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src; - uint32_t src2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - src2 = ((uint32_t)src) << 1; - while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; } -}}}}}m68k_incpc(4); - return (48+retcycles*2); -} -unsigned long CPUFUNC(op_c1fc_4)(uint32_t opcode) /* MULS */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - unsigned int retcycles = 0; - OpcodeFamily = 63; CurrentInstrCycles = 42; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src; - uint32_t src2; - CLEAR_CZNV; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); - src2 = ((uint32_t)src) << 1; - while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; } -}}}}m68k_incpc(4); - return (42+retcycles*2); -} -unsigned long CPUFUNC(op_d000_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(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 CPUFUNC(op_d010_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_d018_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_d020_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_d028_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_d030_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_d038_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_d039_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_d03a_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_d03b_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int8_t src = m68k_read_memory_8(srca); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_d03c_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 8; -{{ int8_t src = get_ibyte(2); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_d040_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(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 CPUFUNC(op_d048_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 4; -{{ int16_t src = m68k_areg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(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 CPUFUNC(op_d050_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_d058_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 8; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_d060_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 10; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(2); -return 10; -} -unsigned long CPUFUNC(op_d068_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_d070_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 14; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_d078_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_d079_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_d07a_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_d07b_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 14; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}m68k_incpc(4); -return 14; -} -unsigned long CPUFUNC(op_d07c_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 8; -{{ int16_t src = get_iword(2); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}m68k_incpc(4); -return 8; -} -unsigned long CPUFUNC(op_d080_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 8; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_d088_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 8; -{{ int32_t src = m68k_areg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_d090_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_d098_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_d0a0_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(2); -return 16; -} -unsigned long CPUFUNC(op_d0a8_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_d0b0_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_d0b8_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 18; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_d0b9_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 22; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_d0ba_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_d0bb_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_d0bc_4)(uint32_t opcode) /* ADD */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_d0c0_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 8; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_d0c8_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 8; -{{ int16_t src = m68k_areg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_d0d0_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_d0d8_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 12; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg(regs, srcreg) += 2; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_d0e0_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_d0e8_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_d0f0_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 18; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_d0f8_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 16; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_d0f9_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 20; -{{ uint32_t srca = get_ilong(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_d0fa_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_d0fb_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 18; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int16_t src = m68k_read_memory_16(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_d0fc_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 12; -{{ int16_t src = get_iword(2); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(4); -return 12; -} -unsigned long CPUFUNC(op_d100_4)(uint32_t opcode) /* ADDX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 13; CurrentInstrCycles = 4; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ int8_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = dst + src + (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_d108_4)(uint32_t opcode) /* ADDX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 13; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; -{ int8_t src = m68k_read_memory_8(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; -{ uint32_t newv = dst + src + (GET_XFLG ? 1 : 0); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int8_t)(newv)) == 0)); - SET_NFLG (((int8_t)(newv)) < 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 18; -} -unsigned long CPUFUNC(op_d110_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_d118_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_d120_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 14; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; -{ int8_t dst = m68k_read_memory_8(dsta); - m68k_areg (regs, dstreg) = dsta; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_d128_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_d130_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 18; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_d138_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_d139_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ int8_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int8_t dst = m68k_read_memory_8(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int8_t)(dst)) + ((int8_t)(src)); -{ int flgs = ((int8_t)(src)) < 0; - int flgo = ((int8_t)(dst)) < 0; - int flgn = ((int8_t)(newv)) < 0; - SET_ZFLG (((int8_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint8_t)(~dst)) < ((uint8_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_8(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_d140_4)(uint32_t opcode) /* ADDX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 13; CurrentInstrCycles = 4; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ int16_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = dst + src + (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}m68k_incpc(2); -return 4; -} -unsigned long CPUFUNC(op_d148_4)(uint32_t opcode) /* ADDX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 13; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 2; -{ int16_t src = m68k_read_memory_16(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; -{ uint32_t newv = dst + src + (GET_XFLG ? 1 : 0); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int16_t)(newv)) == 0)); - SET_NFLG (((int16_t)(newv)) < 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 18; -} -unsigned long CPUFUNC(op_d150_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_d158_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 12; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg(regs, dstreg) += 2; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_d160_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 14; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 2; -{ int16_t dst = m68k_read_memory_16(dsta); - m68k_areg (regs, dstreg) = dsta; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_d168_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_d170_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 18; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_d178_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 11; CurrentInstrCycles = 16; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_d179_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ int16_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int16_t dst = m68k_read_memory_16(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int16_t)(dst)) + ((int16_t)(src)); -{ int flgs = ((int16_t)(src)) < 0; - int flgo = ((int16_t)(dst)) < 0; - int flgn = ((int16_t)(newv)) < 0; - SET_ZFLG (((int16_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint16_t)(~dst)) < ((uint16_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_16(dsta,newv); -}}}}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_d180_4)(uint32_t opcode) /* ADDX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 13; CurrentInstrCycles = 8; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_dreg(regs, dstreg); -{ uint32_t newv = dst + src + (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_dreg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_d188_4)(uint32_t opcode) /* ADDX */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 13; CurrentInstrCycles = 30; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; -{ uint32_t newv = dst + src + (GET_XFLG ? 1 : 0); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY; - SET_ZFLG (GET_ZFLG & (((int32_t)(newv)) == 0)); - SET_NFLG (((int32_t)(newv)) < 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 30; -} -unsigned long CPUFUNC(op_d190_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_d198_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 20; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg); -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg(regs, dstreg) += 4; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 20; -} -unsigned long CPUFUNC(op_d1a0_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 22; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) - 4; -{ int32_t dst = m68k_read_memory_32(dsta); - m68k_areg (regs, dstreg) = dsta; -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(2); -return 22; -} -unsigned long CPUFUNC(op_d1a8_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 24; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = m68k_areg(regs, dstreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_d1b0_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - OpcodeFamily = 11; CurrentInstrCycles = 26; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 26; -} -unsigned long CPUFUNC(op_d1b8_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 11; CurrentInstrCycles = 24; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = (int32_t)(int16_t)get_iword(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(4); -return 24; -} -unsigned long CPUFUNC(op_d1b9_4)(uint32_t opcode) /* ADD */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - OpcodeFamily = 11; CurrentInstrCycles = 28; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ uint32_t dsta = get_ilong(2); -{ int32_t dst = m68k_read_memory_32(dsta); -{ refill_prefetch (m68k_getpc(), 2); -{uint32_t newv = ((int32_t)(dst)) + ((int32_t)(src)); -{ int flgs = ((int32_t)(src)) < 0; - int flgo = ((int32_t)(dst)) < 0; - int flgn = ((int32_t)(newv)) < 0; - SET_ZFLG (((int32_t)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uint32_t)(~dst)) < ((uint32_t)(src))); - COPY_CARRY; - SET_NFLG (flgn != 0); - m68k_write_memory_32(dsta,newv); -}}}}}}}m68k_incpc(6); -return 28; -} -unsigned long CPUFUNC(op_d1c0_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 8; -{{ int32_t src = m68k_dreg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_d1c8_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 8; -{{ int32_t src = m68k_areg(regs, srcreg); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(2); -return 8; -} -unsigned long CPUFUNC(op_d1d0_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 14; -} -#endif - -#ifdef PART_8 -unsigned long CPUFUNC(op_d1d8_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 14; -{{ uint32_t srca = m68k_areg(regs, srcreg); -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg(regs, srcreg) += 4; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_d1e0_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 16; -{{ uint32_t srca = m68k_areg(regs, srcreg) - 4; -{ int32_t src = m68k_read_memory_32(srca); - m68k_areg (regs, srcreg) = srca; -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(2); -return 16; -} -unsigned long CPUFUNC(op_d1e8_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_d1f0_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t srcreg = (opcode & 7); - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 20; -{{ uint32_t srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_d1f8_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 18; -{{ uint32_t srca = (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_d1f9_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 22; -{{ uint32_t srca = get_ilong(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(6); -return 22; -} -unsigned long CPUFUNC(op_d1fa_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 18; -{{ uint32_t srca = m68k_getpc () + 2; - srca += (int32_t)(int16_t)get_iword(2); -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_d1fb_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 20; -{{ uint32_t tmppc = m68k_getpc() + 2; - uint32_t srca = get_disp_ea_000(tmppc, get_iword(2)); - BusCyclePenalty += 2; -{ int32_t src = m68k_read_memory_32(srca); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}}m68k_incpc(4); -return 20; -} -unsigned long CPUFUNC(op_d1fc_4)(uint32_t opcode) /* ADDA */ -{ - uint32_t dstreg = (opcode >> 9) & 7; - OpcodeFamily = 12; CurrentInstrCycles = 16; -{{ int32_t src = get_ilong(2); -{ int32_t dst = m68k_areg(regs, dstreg); -{ uint32_t newv = dst + src; - m68k_areg(regs, dstreg) = (newv); -}}}}m68k_incpc(6); -return 16; -} -unsigned long CPUFUNC(op_e000_4)(uint32_t opcode) /* ASR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 64; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - uint32_t sign = (0x80 & val) >> 7; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 8) { - val = 0xff & (uint32_t)-sign; - SET_CFLG (sign); - COPY_CARRY; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY; - val >>= 1; - val |= (0xff << (8 - cnt)) & (uint32_t)-sign; - val &= 0xff; - } - SET_ZFLG (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e008_4)(uint32_t opcode) /* LSR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 66; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - 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 (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e010_4)(uint32_t opcode) /* ROXR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 71; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ cnt--; - { - uint32_t carry; - uint32_t 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 (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e018_4)(uint32_t opcode) /* ROR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 69; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ uint32_t hival; - cnt &= 7; - hival = val << (8 - cnt); - val >>= cnt; - val |= hival; - val &= 0xff; - SET_CFLG ((val & 0x80) >> 7); - } - SET_ZFLG (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e020_4)(uint32_t opcode) /* ASR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 64; CurrentInstrCycles = 4; -{{ int8_t cnt = m68k_dreg(regs, srcreg); -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - uint32_t sign = (0x80 & val) >> 7; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 8) { - val = 0xff & (uint32_t)-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)) & (uint32_t)-sign; - val &= 0xff; - } - SET_ZFLG (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e028_4)(uint32_t opcode) /* LSR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 66; CurrentInstrCycles = 4; -{{ int8_t cnt = m68k_dreg(regs, srcreg); -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - 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 (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e030_4)(uint32_t opcode) /* ROXR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 71; CurrentInstrCycles = 4; -{{ int8_t cnt = m68k_dreg(regs, srcreg); -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 36) cnt -= 36; - if (cnt >= 18) cnt -= 18; - if (cnt >= 9) cnt -= 9; - if (cnt > 0) { - cnt--; - { - uint32_t carry; - uint32_t 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 (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e038_4)(uint32_t opcode) /* ROR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 69; CurrentInstrCycles = 4; -{{ int8_t cnt = m68k_dreg(regs, srcreg); -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt > 0) { uint32_t hival; - cnt &= 7; - hival = val << (8 - cnt); - val >>= cnt; - val |= hival; - val &= 0xff; - SET_CFLG ((val & 0x80) >> 7); - } - SET_ZFLG (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e040_4)(uint32_t opcode) /* ASR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 64; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - uint32_t sign = (0x8000 & val) >> 15; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 16) { - val = 0xffff & (uint32_t)-sign; - SET_CFLG (sign); - COPY_CARRY; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY; - val >>= 1; - val |= (0xffff << (16 - cnt)) & (uint32_t)-sign; - val &= 0xffff; - } - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e048_4)(uint32_t opcode) /* LSR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 66; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - 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 (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e050_4)(uint32_t opcode) /* ROXR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 71; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ cnt--; - { - uint32_t carry; - uint32_t 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 (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e058_4)(uint32_t opcode) /* ROR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 69; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ uint32_t hival; - cnt &= 15; - hival = val << (16 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffff; - SET_CFLG ((val & 0x8000) >> 15); - } - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e060_4)(uint32_t opcode) /* ASR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 64; CurrentInstrCycles = 4; -{{ int16_t cnt = m68k_dreg(regs, srcreg); -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - uint32_t sign = (0x8000 & val) >> 15; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 16) { - val = 0xffff & (uint32_t)-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)) & (uint32_t)-sign; - val &= 0xffff; - } - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e068_4)(uint32_t opcode) /* LSR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 66; CurrentInstrCycles = 4; -{{ int16_t cnt = m68k_dreg(regs, srcreg); -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - 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 (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e070_4)(uint32_t opcode) /* ROXR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 71; CurrentInstrCycles = 4; -{{ int16_t cnt = m68k_dreg(regs, srcreg); -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 34) cnt -= 34; - if (cnt >= 17) cnt -= 17; - if (cnt > 0) { - cnt--; - { - uint32_t carry; - uint32_t 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 (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e078_4)(uint32_t opcode) /* ROR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 69; CurrentInstrCycles = 4; -{{ int16_t cnt = m68k_dreg(regs, srcreg); -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt > 0) { uint32_t hival; - cnt &= 15; - hival = val << (16 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffff; - SET_CFLG ((val & 0x8000) >> 15); - } - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e080_4)(uint32_t opcode) /* ASR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 64; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - uint32_t sign = (0x80000000 & val) >> 31; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 32) { - val = 0xffffffff & (uint32_t)-sign; - SET_CFLG (sign); - COPY_CARRY; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY; - val >>= 1; - val |= (0xffffffff << (32 - cnt)) & (uint32_t)-sign; - val &= 0xffffffff; - } - SET_ZFLG (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e088_4)(uint32_t opcode) /* LSR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 66; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - 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 (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e090_4)(uint32_t opcode) /* ROXR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 71; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ cnt--; - { - uint32_t carry; - uint32_t 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 (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e098_4)(uint32_t opcode) /* ROR */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 69; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ uint32_t hival; - cnt &= 31; - hival = val << (32 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffffffff; - SET_CFLG ((val & 0x80000000) >> 31); - } - SET_ZFLG (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e0a0_4)(uint32_t opcode) /* ASR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 64; CurrentInstrCycles = 4; -{{ int32_t cnt = m68k_dreg(regs, srcreg); -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - uint32_t sign = (0x80000000 & val) >> 31; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 32) { - val = 0xffffffff & (uint32_t)-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)) & (uint32_t)-sign; - val &= 0xffffffff; - } - SET_ZFLG (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e0a8_4)(uint32_t opcode) /* LSR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 66; CurrentInstrCycles = 4; -{{ int32_t cnt = m68k_dreg(regs, srcreg); -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - 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 (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e0b0_4)(uint32_t opcode) /* ROXR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 71; CurrentInstrCycles = 4; -{{ int32_t cnt = m68k_dreg(regs, srcreg); -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 33) cnt -= 33; - if (cnt > 0) { - cnt--; - { - uint32_t carry; - uint32_t 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 (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e0b8_4)(uint32_t opcode) /* ROR */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 69; CurrentInstrCycles = 4; -{{ int32_t cnt = m68k_dreg(regs, srcreg); -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt > 0) { uint32_t hival; - cnt &= 31; - hival = val << (32 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffffffff; - SET_CFLG ((val & 0x80000000) >> 31); - } - SET_ZFLG (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e0d0_4)(uint32_t opcode) /* ASRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 72; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e0d8_4)(uint32_t opcode) /* ASRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 72; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg(regs, srcreg) += 2; -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e0e0_4)(uint32_t opcode) /* ASRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 72; CurrentInstrCycles = 14; -{{ uint32_t dataa = m68k_areg(regs, srcreg) - 2; -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg (regs, srcreg) = dataa; -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_e0e8_4)(uint32_t opcode) /* ASRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 72; CurrentInstrCycles = 16; -{{ uint32_t dataa = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e0f0_4)(uint32_t opcode) /* ASRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 72; CurrentInstrCycles = 18; -{{ uint32_t dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_e0f8_4)(uint32_t opcode) /* ASRW */ -{ - OpcodeFamily = 72; CurrentInstrCycles = 16; -{{ uint32_t dataa = (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e0f9_4)(uint32_t opcode) /* ASRW */ -{ - OpcodeFamily = 72; CurrentInstrCycles = 20; -{{ uint32_t dataa = get_ilong(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_e100_4)(uint32_t opcode) /* ASL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 65; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 8) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY; - val = 0; - } else { - uint32_t 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 (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e108_4)(uint32_t opcode) /* LSL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 67; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - 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 (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e110_4)(uint32_t opcode) /* ROXL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 70; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ cnt--; - { - uint32_t carry; - uint32_t 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 (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e118_4)(uint32_t opcode) /* ROL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 68; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ uint32_t loval; - cnt &= 7; - loval = val >> (8 - cnt); - val <<= cnt; - val |= loval; - val &= 0xff; - SET_CFLG (val & 1); -} - SET_ZFLG (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e120_4)(uint32_t opcode) /* ASL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 65; CurrentInstrCycles = 4; -{{ int8_t cnt = m68k_dreg(regs, srcreg); -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 8) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY; - val = 0; - } else if (cnt > 0) { - uint32_t 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 (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e128_4)(uint32_t opcode) /* LSL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 67; CurrentInstrCycles = 4; -{{ int8_t cnt = m68k_dreg(regs, srcreg); -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - 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 (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e130_4)(uint32_t opcode) /* ROXL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 70; CurrentInstrCycles = 4; -{{ int8_t cnt = m68k_dreg(regs, srcreg); -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 36) cnt -= 36; - if (cnt >= 18) cnt -= 18; - if (cnt >= 9) cnt -= 9; - if (cnt > 0) { - cnt--; - { - uint32_t carry; - uint32_t 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 (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e138_4)(uint32_t opcode) /* ROL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 68; CurrentInstrCycles = 4; -{{ int8_t cnt = m68k_dreg(regs, srcreg); -{ int8_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint8_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt > 0) { - uint32_t loval; - cnt &= 7; - loval = val >> (8 - cnt); - val <<= cnt; - val |= loval; - val &= 0xff; - SET_CFLG (val & 1); -} - SET_ZFLG (((int8_t)(val)) == 0); - SET_NFLG (((int8_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e140_4)(uint32_t opcode) /* ASL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 65; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 16) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY; - val = 0; - } else { - uint32_t 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 (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e148_4)(uint32_t opcode) /* LSL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 67; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - 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 (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e150_4)(uint32_t opcode) /* ROXL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 70; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ cnt--; - { - uint32_t carry; - uint32_t 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 (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e158_4)(uint32_t opcode) /* ROL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 68; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ uint32_t loval; - cnt &= 15; - loval = val >> (16 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e160_4)(uint32_t opcode) /* ASL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 65; CurrentInstrCycles = 4; -{{ int16_t cnt = m68k_dreg(regs, srcreg); -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 16) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY; - val = 0; - } else if (cnt > 0) { - uint32_t 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 (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e168_4)(uint32_t opcode) /* LSL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 67; CurrentInstrCycles = 4; -{{ int16_t cnt = m68k_dreg(regs, srcreg); -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - 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 (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e170_4)(uint32_t opcode) /* ROXL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 70; CurrentInstrCycles = 4; -{{ int16_t cnt = m68k_dreg(regs, srcreg); -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 34) cnt -= 34; - if (cnt >= 17) cnt -= 17; - if (cnt > 0) { - cnt--; - { - uint32_t carry; - uint32_t 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 (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e178_4)(uint32_t opcode) /* ROL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 68; CurrentInstrCycles = 4; -{{ int16_t cnt = m68k_dreg(regs, srcreg); -{ int16_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = (uint16_t)data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt > 0) { - uint32_t loval; - cnt &= 15; - loval = val >> (16 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}}m68k_incpc(2); - return (6+retcycles*2); -} -unsigned long CPUFUNC(op_e180_4)(uint32_t opcode) /* ASL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 65; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 32) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY; - val = 0; - } else { - uint32_t 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 (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e188_4)(uint32_t opcode) /* LSL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 67; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - 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 (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e190_4)(uint32_t opcode) /* ROXL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 70; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ cnt--; - { - uint32_t carry; - uint32_t 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 (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e198_4)(uint32_t opcode) /* ROL */ -{ - uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 68; CurrentInstrCycles = 4; -{{ uint32_t cnt = srcreg; -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; -{ uint32_t loval; - cnt &= 31; - loval = val >> (32 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffffffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e1a0_4)(uint32_t opcode) /* ASL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 65; CurrentInstrCycles = 4; -{{ int32_t cnt = m68k_dreg(regs, srcreg); -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 32) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY; - val = 0; - } else if (cnt > 0) { - uint32_t 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 (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e1a8_4)(uint32_t opcode) /* LSL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 67; CurrentInstrCycles = 4; -{{ int32_t cnt = m68k_dreg(regs, srcreg); -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - 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 (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e1b0_4)(uint32_t opcode) /* ROXL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 70; CurrentInstrCycles = 4; -{{ int32_t cnt = m68k_dreg(regs, srcreg); -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt >= 33) cnt -= 33; - if (cnt > 0) { - cnt--; - { - uint32_t carry; - uint32_t 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 (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e1b8_4)(uint32_t opcode) /* ROL */ -{ - uint32_t srcreg = ((opcode >> 9) & 7); - uint32_t dstreg = opcode & 7; - unsigned int retcycles = 0; - OpcodeFamily = 68; CurrentInstrCycles = 4; -{{ int32_t cnt = m68k_dreg(regs, srcreg); -{ int32_t data = m68k_dreg(regs, dstreg); -{ uint32_t val = data; - cnt &= 63; - retcycles = cnt; - CLEAR_CZNV; - if (cnt > 0) { - uint32_t loval; - cnt &= 31; - loval = val >> (32 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffffffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((int32_t)(val)) == 0); - SET_NFLG (((int32_t)(val)) < 0); - m68k_dreg(regs, dstreg) = (val); -}}}}m68k_incpc(2); - return (8+retcycles*2); -} -unsigned long CPUFUNC(op_e1d0_4)(uint32_t opcode) /* ASLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 73; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t sign2; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY; - SET_VFLG (GET_VFLG | (sign2 != sign)); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e1d8_4)(uint32_t opcode) /* ASLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 73; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg(regs, srcreg) += 2; -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t sign2; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY; - SET_VFLG (GET_VFLG | (sign2 != sign)); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e1e0_4)(uint32_t opcode) /* ASLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 73; CurrentInstrCycles = 14; -{{ uint32_t dataa = m68k_areg(regs, srcreg) - 2; -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg (regs, srcreg) = dataa; -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t sign2; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY; - SET_VFLG (GET_VFLG | (sign2 != sign)); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_e1e8_4)(uint32_t opcode) /* ASLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 73; CurrentInstrCycles = 16; -{{ uint32_t dataa = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t sign2; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY; - SET_VFLG (GET_VFLG | (sign2 != sign)); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e1f0_4)(uint32_t opcode) /* ASLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 73; CurrentInstrCycles = 18; -{{ uint32_t dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t sign2; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY; - SET_VFLG (GET_VFLG | (sign2 != sign)); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_e1f8_4)(uint32_t opcode) /* ASLW */ -{ - OpcodeFamily = 73; CurrentInstrCycles = 16; -{{ uint32_t dataa = (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t sign2; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY; - SET_VFLG (GET_VFLG | (sign2 != sign)); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e1f9_4)(uint32_t opcode) /* ASLW */ -{ - OpcodeFamily = 73; CurrentInstrCycles = 20; -{{ uint32_t dataa = get_ilong(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t sign = 0x8000 & val; - uint32_t sign2; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY; - SET_VFLG (GET_VFLG | (sign2 != sign)); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_e2d0_4)(uint32_t opcode) /* LSRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 74; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t carry = val & 1; - val >>= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e2d8_4)(uint32_t opcode) /* LSRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 74; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg(regs, srcreg) += 2; -{ uint32_t val = (uint16_t)data; - uint32_t carry = val & 1; - val >>= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e2e0_4)(uint32_t opcode) /* LSRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 74; CurrentInstrCycles = 14; -{{ uint32_t dataa = m68k_areg(regs, srcreg) - 2; -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg (regs, srcreg) = dataa; -{ uint32_t val = (uint16_t)data; - uint32_t carry = val & 1; - val >>= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_e2e8_4)(uint32_t opcode) /* LSRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 74; CurrentInstrCycles = 16; -{{ uint32_t dataa = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t carry = val & 1; - val >>= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e2f0_4)(uint32_t opcode) /* LSRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 74; CurrentInstrCycles = 18; -{{ uint32_t dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t carry = val & 1; - val >>= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_e2f8_4)(uint32_t opcode) /* LSRW */ -{ - OpcodeFamily = 74; CurrentInstrCycles = 16; -{{ uint32_t dataa = (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t carry = val & 1; - val >>= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e2f9_4)(uint32_t opcode) /* LSRW */ -{ - OpcodeFamily = 74; CurrentInstrCycles = 20; -{{ uint32_t dataa = get_ilong(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint32_t val = (uint16_t)data; - uint32_t carry = val & 1; - val >>= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_e3d0_4)(uint32_t opcode) /* LSLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 75; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e3d8_4)(uint32_t opcode) /* LSLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 75; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg(regs, srcreg) += 2; -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e3e0_4)(uint32_t opcode) /* LSLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 75; CurrentInstrCycles = 14; -{{ uint32_t dataa = m68k_areg(regs, srcreg) - 2; -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg (regs, srcreg) = dataa; -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_e3e8_4)(uint32_t opcode) /* LSLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 75; CurrentInstrCycles = 16; -{{ uint32_t dataa = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e3f0_4)(uint32_t opcode) /* LSLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 75; CurrentInstrCycles = 18; -{{ uint32_t dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_e3f8_4)(uint32_t opcode) /* LSLW */ -{ - OpcodeFamily = 75; CurrentInstrCycles = 16; -{{ uint32_t dataa = (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e3f9_4)(uint32_t opcode) /* LSLW */ -{ - OpcodeFamily = 75; CurrentInstrCycles = 20; -{{ uint32_t dataa = get_ilong(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_e4d0_4)(uint32_t opcode) /* ROXRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 79; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (GET_XFLG) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e4d8_4)(uint32_t opcode) /* ROXRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 79; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg(regs, srcreg) += 2; -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (GET_XFLG) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e4e0_4)(uint32_t opcode) /* ROXRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 79; CurrentInstrCycles = 14; -{{ uint32_t dataa = m68k_areg(regs, srcreg) - 2; -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg (regs, srcreg) = dataa; -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (GET_XFLG) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_e4e8_4)(uint32_t opcode) /* ROXRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 79; CurrentInstrCycles = 16; -{{ uint32_t dataa = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (GET_XFLG) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e4f0_4)(uint32_t opcode) /* ROXRW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 79; CurrentInstrCycles = 18; -{{ uint32_t dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (GET_XFLG) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_e4f8_4)(uint32_t opcode) /* ROXRW */ -{ - OpcodeFamily = 79; CurrentInstrCycles = 16; -{{ uint32_t dataa = (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (GET_XFLG) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e4f9_4)(uint32_t opcode) /* ROXRW */ -{ - OpcodeFamily = 79; CurrentInstrCycles = 20; -{{ uint32_t dataa = get_ilong(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (GET_XFLG) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_e5d0_4)(uint32_t opcode) /* ROXLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 78; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (GET_XFLG) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e5d8_4)(uint32_t opcode) /* ROXLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 78; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg(regs, srcreg) += 2; -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (GET_XFLG) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e5e0_4)(uint32_t opcode) /* ROXLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 78; CurrentInstrCycles = 14; -{{ uint32_t dataa = m68k_areg(regs, srcreg) - 2; -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg (regs, srcreg) = dataa; -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (GET_XFLG) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_e5e8_4)(uint32_t opcode) /* ROXLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 78; CurrentInstrCycles = 16; -{{ uint32_t dataa = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (GET_XFLG) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e5f0_4)(uint32_t opcode) /* ROXLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 78; CurrentInstrCycles = 18; -{{ uint32_t dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (GET_XFLG) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_e5f8_4)(uint32_t opcode) /* ROXLW */ -{ - OpcodeFamily = 78; CurrentInstrCycles = 16; -{{ uint32_t dataa = (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (GET_XFLG) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e5f9_4)(uint32_t opcode) /* ROXLW */ -{ - OpcodeFamily = 78; CurrentInstrCycles = 20; -{{ uint32_t dataa = get_ilong(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (GET_XFLG) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - COPY_CARRY; - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_e6d0_4)(uint32_t opcode) /* RORW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 77; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e6d8_4)(uint32_t opcode) /* RORW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 77; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg(regs, srcreg) += 2; -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e6e0_4)(uint32_t opcode) /* RORW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 77; CurrentInstrCycles = 14; -{{ uint32_t dataa = m68k_areg(regs, srcreg) - 2; -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg (regs, srcreg) = dataa; -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_e6e8_4)(uint32_t opcode) /* RORW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 77; CurrentInstrCycles = 16; -{{ uint32_t dataa = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e6f0_4)(uint32_t opcode) /* RORW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 77; CurrentInstrCycles = 18; -{{ uint32_t dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_e6f8_4)(uint32_t opcode) /* RORW */ -{ - OpcodeFamily = 77; CurrentInstrCycles = 16; -{{ uint32_t dataa = (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e6f9_4)(uint32_t opcode) /* RORW */ -{ - OpcodeFamily = 77; CurrentInstrCycles = 20; -{{ uint32_t dataa = get_ilong(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(6); -return 20; -} -unsigned long CPUFUNC(op_e7d0_4)(uint32_t opcode) /* ROLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 76; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e7d8_4)(uint32_t opcode) /* ROLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 76; CurrentInstrCycles = 12; -{{ uint32_t dataa = m68k_areg(regs, srcreg); -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg(regs, srcreg) += 2; -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 12; -} -unsigned long CPUFUNC(op_e7e0_4)(uint32_t opcode) /* ROLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 76; CurrentInstrCycles = 14; -{{ uint32_t dataa = m68k_areg(regs, srcreg) - 2; -{ int16_t data = m68k_read_memory_16(dataa); - m68k_areg (regs, srcreg) = dataa; -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(2); -return 14; -} -unsigned long CPUFUNC(op_e7e8_4)(uint32_t opcode) /* ROLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 76; CurrentInstrCycles = 16; -{{ uint32_t dataa = m68k_areg(regs, srcreg) + (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e7f0_4)(uint32_t opcode) /* ROLW */ -{ - uint32_t srcreg = (opcode & 7); - OpcodeFamily = 76; CurrentInstrCycles = 18; -{{ uint32_t dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); - BusCyclePenalty += 2; -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 18; -} -unsigned long CPUFUNC(op_e7f8_4)(uint32_t opcode) /* ROLW */ -{ - OpcodeFamily = 76; CurrentInstrCycles = 16; -{{ uint32_t dataa = (int32_t)(int16_t)get_iword(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(4); -return 16; -} -unsigned long CPUFUNC(op_e7f9_4)(uint32_t opcode) /* ROLW */ -{ - OpcodeFamily = 76; CurrentInstrCycles = 20; -{{ uint32_t dataa = get_ilong(2); -{ int16_t data = m68k_read_memory_16(dataa); -{ uint16_t val = data; - uint32_t carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV; - SET_ZFLG (((int16_t)(val)) == 0); - SET_NFLG (((int16_t)(val)) < 0); -SET_CFLG (carry >> 15); - m68k_write_memory_16(dataa,val); -}}}}m68k_incpc(6); -return 20; -} -#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 CPUFUNC(op_0_5)(uint32_t opcode) /* OR */ { uint32_t dstreg = opcode & 7; @@ -29680,9 +3998,6 @@ fill_prefetch_0 (); endlabel1784: ; return 20; } -#endif - -#ifdef PART_2 unsigned long CPUFUNC(op_a80_5)(uint32_t opcode) /* EOR */ { uint32_t dstreg = opcode & 7; @@ -33538,9 +7853,6 @@ fill_prefetch_0 (); }}}}}}endlabel1974: ; return 24; } -#endif - -#ifdef PART_3 unsigned long CPUFUNC(op_2139_5)(uint32_t opcode) /* MOVE */ { uint32_t dstreg = (opcode >> 9) & 7; @@ -39239,9 +13551,6 @@ fill_prefetch_0 (); }}}endlabel2197: ; return 16; } -#endif - -#ifdef PART_4 unsigned long CPUFUNC(op_4270_5)(uint32_t opcode) /* CLR */ { uint32_t srcreg = (opcode & 7); @@ -43193,9 +17502,6 @@ fill_prefetch_2 (); m68k_write_memory_8(dsta,newv); }}}}}}}return 12; } -#endif - -#ifdef PART_5 unsigned long CPUFUNC(op_5020_5)(uint32_t opcode) /* ADD */ { uint32_t srcreg = imm8_table[((opcode >> 9) & 7)]; @@ -46312,9 +20618,6 @@ fill_prefetch_2 (); m68k_write_memory_8(srca,val); }}}return 14; } -#endif - -#ifdef PART_6 unsigned long CPUFUNC(op_5fe8_5)(uint32_t opcode) /* Scc */ { uint32_t srcreg = (opcode & 7); @@ -51671,9 +25974,6 @@ unsigned long CPUFUNC(op_b03b_5)(uint32_t opcode) /* CMP */ fill_prefetch_0 (); return 14; } -#endif - -#ifdef PART_7 unsigned long CPUFUNC(op_b03c_5)(uint32_t opcode) /* CMP */ { uint32_t dstreg = (opcode >> 9) & 7; @@ -57394,9 +31694,6 @@ fill_prefetch_2 (); endlabel3047: ; return 14; } -#endif - -#ifdef PART_8 unsigned long CPUFUNC(op_d1d8_5)(uint32_t opcode) /* ADDA */ { uint32_t srcreg = (opcode & 7); @@ -60604,5 +34901,3 @@ fill_prefetch_0 (); }}}}}endlabel3160: ; return 20; } -#endif - diff --git a/waterbox/virtualjaguar/src/m68000/cpuextra.c b/waterbox/virtualjaguar/src/m68000/cpuextra.c index e98f1da812..0a8a17d521 100644 --- a/waterbox/virtualjaguar/src/m68000/cpuextra.c +++ b/waterbox/virtualjaguar/src/m68000/cpuextra.c @@ -10,18 +10,16 @@ #include "cpudefs.h" #include "inlines.h" +uint16_t last_op_for_exception_3; +uint32_t last_addr_for_exception_3; +uint32_t last_fault_for_exception_3; -uint16_t last_op_for_exception_3; // Opcode of faulting instruction -uint32_t last_addr_for_exception_3; // PC at fault time -uint32_t last_fault_for_exception_3; // Address that generated the exception - -int OpcodeFamily; // Used by cpuemu.c... -int BusCyclePenalty = 0; // Used by cpuemu.c... +int OpcodeFamily; +int BusCyclePenalty = 0; int CurrentInstrCycles; struct regstruct regs; - // // Make displacement effective address for 68000 // @@ -30,29 +28,12 @@ uint32_t get_disp_ea_000(uint32_t base, uint32_t dp) int reg = (dp >> 12) & 0x0F; int32_t regd = regs.regs[reg]; -#if 1 if ((dp & 0x800) == 0) regd = (int32_t)(int16_t)regd; return base + (int8_t)dp + regd; -#else - /* Branch-free code... benchmark this again now that - * things are no longer inline. - */ - int32_t regd16; - uint32_t mask; - mask = ((dp & 0x800) >> 11) - 1; - regd16 = (int32_t)(int16_t)regd; - regd16 &= mask; - mask = ~mask; - base += (int8_t)dp; - regd &= mask; - regd |= regd16; - return base + regd; -#endif } - // // Create the Status Register from the flags // @@ -62,7 +43,6 @@ void MakeSR(void) | (GET_NFLG << 3) | (GET_ZFLG << 2) | (GET_VFLG << 1) | GET_CFLG); } - // // Set up the flags from Status Register // @@ -91,107 +71,19 @@ void MakeFromSR(void) m68k_areg(regs, 7) = regs.isp; } } - - /* Pending interrupts can occur again after a write to the SR: */ -//JLH: is this needed? -// set_special(SPCFLAG_DOINT); } - -// -// Rudimentary exception handling. This is really stripped down from what -// was in Hatari. -/* -NB: Seems that when an address exception occurs, it doesn't get handled properly - as per test1.cof. Need to figure out why it keeps going when it should wedge. :-P -*/ // // Handle exceptions. We need a special case to handle MFP exceptions // on Atari ST, because it's possible to change the MFP's vector base // and get a conflict with 'normal' cpu exceptions. // -#if 0 -/* -This is the STOP # function. Dunno if exception handling occurs when it hits here or not, because don't know if the regs.s bit is set or not! -Seems to be... - -SR----------------- -1111 11 -5432 1098 7654 3210 ----- ---- ---- ---- - 1 1 - - -*/ -unsigned long CPUFUNC(op_4e72_5)(uint32_t opcode) /* STOP */ -{ - OpcodeFamily = 44; - CurrentInstrCycles = 4; - - if (!regs.s) - { - Exception(8, 0, M68000_EXC_SRC_CPU); - } - else - { - int16_t src = get_iword_prefetch(2); - regs.sr = src; - MakeFromSR(); - m68k_setstopped(1); - m68k_incpc(4); - fill_prefetch_0(); - } - - return 4; -} -#endif -//tmp... -void WriteLog(const char * text, ...); void Exception(int nr, uint32_t oldpc, int ExceptionSource) { uint32_t currpc = m68k_getpc(), newpc; -// Need to figure out how to report this stuff without using printf on stdout :-/ -#if 0 -char excNames[33][64] = { - "???", "???", "Bus Error", "Address Error", - "Illegal Instruction", "Zero Divide", "CHK", "TrapV", - "Privilege Violation", "Trace", "Line A", "Line F", - "???", "???", "Format Error", "Uninitialized Interrupt", - "???", "???", "???", "???", - "???", "???", "???", "???", - "Spurious/Autovector", "???", "???", "???", - "???", "???", "???", "???", - "Trap #" -}; - -WriteLog("Exception #%i occurred! (%s)\n", nr, (nr < 32 ? excNames[nr] : (nr < 48 ? "Trap #" : "????"))); -WriteLog("Vector @ #%i = %08X\n", nr, m68k_read_memory_32(nr * 4)); -//abort(); -WriteLog("PC = $%08X\n", currpc); -WriteLog("A0 = $%08X A1 = $%08X A2 = $%08X A3 = $%08X\n", m68k_areg(regs, 0), m68k_areg(regs, 1), m68k_areg(regs, 2), m68k_areg(regs, 3)); -WriteLog("A4 = $%08X A5 = $%08X A6 = $%08X A7 = $%08X\n", m68k_areg(regs, 4), m68k_areg(regs, 5), m68k_areg(regs, 6), m68k_areg(regs, 7)); -WriteLog("D0 = $%08X D1 = $%08X D2 = $%08X D3 = $%08X\n", m68k_dreg(regs, 0), m68k_dreg(regs, 1), m68k_dreg(regs, 2), m68k_dreg(regs, 3)); -WriteLog("D4 = $%08X D5 = $%08X D6 = $%08X D7 = $%08X\n", m68k_dreg(regs, 4), m68k_dreg(regs, 5), m68k_dreg(regs, 6), m68k_dreg(regs, 7)); -WriteLog("\n"); - -uint32_t disPC = currpc - 10; -char buffer[128]; - -do -{ - uint32_t oldpc = disPC; - disPC += m68k_disassemble(buffer, disPC, 0); - WriteLog("%s%08X: %s\n", (oldpc == currpc ? ">" : " "), oldpc, buffer); -} -while (disPC < (currpc + 10)); -#endif - -/*if( nr>=2 && nr<10 ) fprintf(stderr,"Exception (-> %i bombs)!\n",nr);*/ - MakeSR(); - // Change to supervisor mode if necessary if (!regs.s) { regs.usp = m68k_areg(regs, 7); @@ -199,202 +91,15 @@ while (disPC < (currpc + 10)); regs.s = 1; } - // Create 68000 style stack frame - m68k_areg(regs, 7) -= 4; // Push PC on stack + m68k_areg(regs, 7) -= 4; m68k_write_memory_32(m68k_areg(regs, 7), currpc); - m68k_areg(regs, 7) -= 2; // Push SR on stack + m68k_areg(regs, 7) -= 2; m68k_write_memory_16(m68k_areg(regs, 7), regs.sr); -// LOG_TRACE(TRACE_CPU_EXCEPTION, "cpu exception %d currpc %x buspc %x newpc %x fault_e3 %x op_e3 %hx addr_e3 %x\n", -// nr, currpc, BusErrorPC, get_long(4 * nr), last_fault_for_exception_3, last_op_for_exception_3, last_addr_for_exception_3); - -#if 0 - /* 68000 bus/address errors: */ - if ((nr == 2 || nr == 3) && ExceptionSource == M68000_EXC_SRC_CPU) - { - uint16_t specialstatus = 1; - - /* Special status word emulation isn't perfect yet... :-( */ - if (regs.sr & 0x2000) - specialstatus |= 0x4; - - m68k_areg(regs, 7) -= 8; - - if (nr == 3) /* Address error */ - { - specialstatus |= (last_op_for_exception_3 & (~0x1F)); /* [NP] unused bits of specialstatus are those of the last opcode ! */ - put_word(m68k_areg(regs, 7), specialstatus); - put_long(m68k_areg(regs, 7) + 2, last_fault_for_exception_3); - put_word(m68k_areg(regs, 7) + 6, last_op_for_exception_3); - put_long(m68k_areg(regs, 7) + 10, last_addr_for_exception_3); - -//JLH: Not now... -#if 0 - if (bExceptionDebugging) - { - fprintf(stderr,"Address Error at address $%x, PC=$%x\n", last_fault_for_exception_3, currpc); - DebugUI(); - } -#endif - } - else /* Bus error */ - { - specialstatus |= (get_word(BusErrorPC) & (~0x1F)); /* [NP] unused bits of special status are those of the last opcode ! */ - - if (bBusErrorReadWrite) - specialstatus |= 0x10; - - put_word(m68k_areg(regs, 7), specialstatus); - put_long(m68k_areg(regs, 7) + 2, BusErrorAddress); - put_word(m68k_areg(regs, 7) + 6, get_word(BusErrorPC)); /* Opcode */ - - /* [NP] PC stored in the stack frame is not necessarily pointing to the next instruction ! */ - /* FIXME : we should have a proper model for this, in the meantime we handle specific cases */ - if (get_word(BusErrorPC) == 0x21F8) /* move.l $0.w,$24.w (Transbeauce 2 loader) */ - put_long(m68k_areg(regs, 7) + 10, currpc - 2); /* correct PC is 2 bytes less than usual value */ - - /* Check for double bus errors: */ - if (regs.spcflags & SPCFLAG_BUSERROR) - { - fprintf(stderr, "Detected double bus error at address $%x, PC=$%lx => CPU halted!\n", - BusErrorAddress, (long)currpc); - unset_special(SPCFLAG_BUSERROR); - - if (bExceptionDebugging) - DebugUI(); - else - DlgAlert_Notice("Detected double bus error => CPU halted!\nEmulation needs to be reset.\n"); - - regs.intmask = 7; - m68k_setstopped(true); - return; - } - - if (bExceptionDebugging && BusErrorAddress != 0xFF8A00) - { - fprintf(stderr,"Bus Error at address $%x, PC=$%lx\n", BusErrorAddress, (long)currpc); - DebugUI(); - } - } - } - -//Not now... -#if 0 - /* Set PC and flags */ - if (bExceptionDebugging && get_long(4 * nr) == 0) - { - write_log("Uninitialized exception handler #%i!\n", nr); - DebugUI(); - } -#endif - - newpc = get_long(4 * nr); - - if (newpc & 1) /* check new pc is odd */ - { - if (nr == 2 || nr == 3) /* address error during bus/address error -> stop emulation */ - { - fprintf(stderr,"Address Error during exception 2/3, aborting new PC=$%x\n", newpc); - DebugUI(); - } - else - { - fprintf(stderr,"Address Error during exception, new PC=$%x\n", newpc); - Exception(3, m68k_getpc(), M68000_EXC_SRC_CPU); - } - - return; - } -#endif - m68k_setpc(m68k_read_memory_32(4 * nr)); fill_prefetch_0(); - /* Handle trace flags depending on current state */ -//JLH:no exception_trace(nr); - -#if 0 - /* Handle exception cycles (special case for MFP) */ -// if (ExceptionSource == M68000_EXC_SRC_INT_MFP) -// { -// M68000_AddCycles(44 + 12); /* MFP interrupt, 'nr' can be in a different range depending on $fffa17 */ -// } -// else - if (nr >= 24 && nr <= 31) - { -#if 0 - if (nr == 26) /* HBL */ - { - /* store current cycle pos when then interrupt was received (see video.c) */ - LastCycleHblException = Cycles_GetCounter(CYCLES_COUNTER_VIDEO); - M68000_AddCycles(44 + 12); /* Video Interrupt */ - } - else if (nr == 28) /* VBL */ - M68000_AddCycles(44 + 12); /* Video Interrupt */ - else -#endif - M68000_AddCycles(44 + 4); /* Other Interrupts */ - } - else if (nr >= 32 && nr <= 47) - { - M68000_AddCycles(34 - 4); /* Trap (total is 34, but cpuemu.c already adds 4) */ - } - else switch(nr) - { - case 2: M68000_AddCycles(50); break; /* Bus error */ - case 3: M68000_AddCycles(50); break; /* Address error */ - case 4: M68000_AddCycles(34); break; /* Illegal instruction */ - case 5: M68000_AddCycles(38); break; /* Div by zero */ - case 6: M68000_AddCycles(40); break; /* CHK */ - case 7: M68000_AddCycles(34); break; /* TRAPV */ - case 8: M68000_AddCycles(34); break; /* Privilege violation */ - case 9: M68000_AddCycles(34); break; /* Trace */ - case 10: M68000_AddCycles(34); break; /* Line-A - probably wrong */ - case 11: M68000_AddCycles(34); break; /* Line-F - probably wrong */ - default: - /* FIXME: Add right cycles value for MFP interrupts and copro exceptions ... */ - if (nr < 64) - M68000_AddCycles(4); /* Coprocessor and unassigned exceptions (???) */ - else - M68000_AddCycles(44 + 12); /* Must be a MFP or DSP interrupt */ - - break; - } -#endif } - -/* - The routines below take dividend and divisor as parameters. - They return 0 if division by zero, or exact number of cycles otherwise. - - The number of cycles returned assumes a register operand. - Effective address time must be added if memory operand. - - For 68000 only (not 68010, 68012, 68020, etc). - Probably valid for 68008 after adding the extra prefetch cycle. - - - Best and worst cases are for register operand: - (Note the difference with the documented range.) - - - DIVU: - - Overflow (always): 10 cycles. - Worst case: 136 cycles. - Best case: 76 cycles. - - - DIVS: - - Absolute overflow: 16-18 cycles. - Signed overflow is not detected prematurely. - - Worst case: 156 cycles. - Best case without signed overflow: 122 cycles. - Best case with signed overflow: 120 cycles - */ - // // DIVU // Unsigned division @@ -408,7 +113,6 @@ STATIC_INLINE int getDivu68kCycles_2 (uint32_t dividend, uint16_t divisor) if (divisor == 0) return 0; - // Overflow if ((dividend >> 16) >= divisor) return (mcycles = 5) * 2; @@ -422,7 +126,6 @@ STATIC_INLINE int getDivu68kCycles_2 (uint32_t dividend, uint16_t divisor) dividend <<= 1; - // If carry from shift if ((int32_t)temp < 0) dividend -= hdivisor; else @@ -440,16 +143,12 @@ STATIC_INLINE int getDivu68kCycles_2 (uint32_t dividend, uint16_t divisor) return mcycles * 2; } - -// This is called by cpuemu.c int getDivu68kCycles(uint32_t dividend, uint16_t divisor) { int v = getDivu68kCycles_2(dividend, divisor) - 4; -// write_log ("U%d ", v); return v; } - // // DIVS // Signed division @@ -468,11 +167,9 @@ STATIC_INLINE int getDivs68kCycles_2(int32_t dividend, int16_t divisor) if (dividend < 0) mcycles++; - // Check for absolute overflow if (((uint32_t)abs(dividend) >> 16) >= (uint16_t)abs(divisor)) return (mcycles + 2) * 2; - // Absolute quotient aquot = (uint32_t)abs(dividend) / (uint16_t)abs(divisor); mcycles += 55; @@ -485,8 +182,6 @@ STATIC_INLINE int getDivs68kCycles_2(int32_t dividend, int16_t divisor) mcycles++; } - // Count 15 msbits in absolute of quotient - for(i=0; i<15; i++) { if ((int16_t)aquot >= 0) @@ -498,12 +193,8 @@ STATIC_INLINE int getDivs68kCycles_2(int32_t dividend, int16_t divisor) return mcycles * 2; } - -// This is called by cpuemu.c int getDivs68kCycles(int32_t dividend, int16_t divisor) { int v = getDivs68kCycles_2(dividend, divisor) - 4; -// write_log ("S%d ", v); return v; } - diff --git a/waterbox/virtualjaguar/src/m68000/cpuextra.h b/waterbox/virtualjaguar/src/m68000/cpuextra.h index 0efbbb4d7c..f5504ee5f4 100644 --- a/waterbox/virtualjaguar/src/m68000/cpuextra.h +++ b/waterbox/virtualjaguar/src/m68000/cpuextra.h @@ -12,15 +12,12 @@ struct cputbl uint16_t opcode; }; -extern uint16_t last_op_for_exception_3; /* Opcode of faulting instruction */ -extern uint32_t last_addr_for_exception_3; /* PC at fault time */ -extern uint32_t last_fault_for_exception_3; /* Address that generated the exception */ +extern uint16_t last_op_for_exception_3; +extern uint32_t last_addr_for_exception_3; +extern uint32_t last_fault_for_exception_3; -/* Family of the latest instruction executed (to check for pairing) */ -extern int OpcodeFamily; /* see instrmnem in readcpu.h */ +extern int OpcodeFamily; -/* How many cycles to add to the current instruction in case a "misaligned" bus access is made */ -/* (used when addressing mode is d8(an,ix)) */ extern int BusCyclePenalty; extern int CurrentInstrCycles; diff --git a/waterbox/virtualjaguar/src/m68000/cpustbl.c b/waterbox/virtualjaguar/src/m68000/cpustbl.c index 91f632682b..80d7f3a7b8 100644 --- a/waterbox/virtualjaguar/src/m68000/cpustbl.c +++ b/waterbox/virtualjaguar/src/m68000/cpustbl.c @@ -3,1591 +3,7 @@ #include "inlines.h" #include "cputbl.h" #define CPUFUNC(x) x##_ff -#ifdef NOFLAGS -#include "noflags.h" -#endif -const struct cputbl CPUFUNC(op_smalltbl_4)[] = { -{ CPUFUNC(op_0_4), 0, 0 }, /* OR */ -{ CPUFUNC(op_10_4), 0, 16 }, /* OR */ -{ CPUFUNC(op_18_4), 0, 24 }, /* OR */ -{ CPUFUNC(op_20_4), 0, 32 }, /* OR */ -{ CPUFUNC(op_28_4), 0, 40 }, /* OR */ -{ CPUFUNC(op_30_4), 0, 48 }, /* OR */ -{ CPUFUNC(op_38_4), 0, 56 }, /* OR */ -{ CPUFUNC(op_39_4), 0, 57 }, /* OR */ -{ CPUFUNC(op_3c_4), 0, 60 }, /* ORSR */ -{ CPUFUNC(op_40_4), 0, 64 }, /* OR */ -{ CPUFUNC(op_50_4), 0, 80 }, /* OR */ -{ CPUFUNC(op_58_4), 0, 88 }, /* OR */ -{ CPUFUNC(op_60_4), 0, 96 }, /* OR */ -{ CPUFUNC(op_68_4), 0, 104 }, /* OR */ -{ CPUFUNC(op_70_4), 0, 112 }, /* OR */ -{ CPUFUNC(op_78_4), 0, 120 }, /* OR */ -{ CPUFUNC(op_79_4), 0, 121 }, /* OR */ -{ CPUFUNC(op_7c_4), 0, 124 }, /* ORSR */ -{ CPUFUNC(op_80_4), 0, 128 }, /* OR */ -{ CPUFUNC(op_90_4), 0, 144 }, /* OR */ -{ CPUFUNC(op_98_4), 0, 152 }, /* OR */ -{ CPUFUNC(op_a0_4), 0, 160 }, /* OR */ -{ CPUFUNC(op_a8_4), 0, 168 }, /* OR */ -{ CPUFUNC(op_b0_4), 0, 176 }, /* OR */ -{ CPUFUNC(op_b8_4), 0, 184 }, /* OR */ -{ CPUFUNC(op_b9_4), 0, 185 }, /* OR */ -{ CPUFUNC(op_100_4), 0, 256 }, /* BTST */ -{ CPUFUNC(op_108_4), 0, 264 }, /* MVPMR */ -{ CPUFUNC(op_110_4), 0, 272 }, /* BTST */ -{ CPUFUNC(op_118_4), 0, 280 }, /* BTST */ -{ CPUFUNC(op_120_4), 0, 288 }, /* BTST */ -{ CPUFUNC(op_128_4), 0, 296 }, /* BTST */ -{ CPUFUNC(op_130_4), 0, 304 }, /* BTST */ -{ CPUFUNC(op_138_4), 0, 312 }, /* BTST */ -{ CPUFUNC(op_139_4), 0, 313 }, /* BTST */ -{ CPUFUNC(op_13a_4), 0, 314 }, /* BTST */ -{ CPUFUNC(op_13b_4), 0, 315 }, /* BTST */ -{ CPUFUNC(op_13c_4), 0, 316 }, /* BTST */ -{ CPUFUNC(op_140_4), 0, 320 }, /* BCHG */ -{ CPUFUNC(op_148_4), 0, 328 }, /* MVPMR */ -{ CPUFUNC(op_150_4), 0, 336 }, /* BCHG */ -{ CPUFUNC(op_158_4), 0, 344 }, /* BCHG */ -{ CPUFUNC(op_160_4), 0, 352 }, /* BCHG */ -{ CPUFUNC(op_168_4), 0, 360 }, /* BCHG */ -{ CPUFUNC(op_170_4), 0, 368 }, /* BCHG */ -{ CPUFUNC(op_178_4), 0, 376 }, /* BCHG */ -{ CPUFUNC(op_179_4), 0, 377 }, /* BCHG */ -{ CPUFUNC(op_17a_4), 0, 378 }, /* BCHG */ -{ CPUFUNC(op_17b_4), 0, 379 }, /* BCHG */ -{ CPUFUNC(op_180_4), 0, 384 }, /* BCLR */ -{ CPUFUNC(op_188_4), 0, 392 }, /* MVPRM */ -{ CPUFUNC(op_190_4), 0, 400 }, /* BCLR */ -{ CPUFUNC(op_198_4), 0, 408 }, /* BCLR */ -{ CPUFUNC(op_1a0_4), 0, 416 }, /* BCLR */ -{ CPUFUNC(op_1a8_4), 0, 424 }, /* BCLR */ -{ CPUFUNC(op_1b0_4), 0, 432 }, /* BCLR */ -{ CPUFUNC(op_1b8_4), 0, 440 }, /* BCLR */ -{ CPUFUNC(op_1b9_4), 0, 441 }, /* BCLR */ -{ CPUFUNC(op_1ba_4), 0, 442 }, /* BCLR */ -{ CPUFUNC(op_1bb_4), 0, 443 }, /* BCLR */ -{ CPUFUNC(op_1c0_4), 0, 448 }, /* BSET */ -{ CPUFUNC(op_1c8_4), 0, 456 }, /* MVPRM */ -{ CPUFUNC(op_1d0_4), 0, 464 }, /* BSET */ -{ CPUFUNC(op_1d8_4), 0, 472 }, /* BSET */ -{ CPUFUNC(op_1e0_4), 0, 480 }, /* BSET */ -{ CPUFUNC(op_1e8_4), 0, 488 }, /* BSET */ -{ CPUFUNC(op_1f0_4), 0, 496 }, /* BSET */ -{ CPUFUNC(op_1f8_4), 0, 504 }, /* BSET */ -{ CPUFUNC(op_1f9_4), 0, 505 }, /* BSET */ -{ CPUFUNC(op_1fa_4), 0, 506 }, /* BSET */ -{ CPUFUNC(op_1fb_4), 0, 507 }, /* BSET */ -{ CPUFUNC(op_200_4), 0, 512 }, /* AND */ -{ CPUFUNC(op_210_4), 0, 528 }, /* AND */ -{ CPUFUNC(op_218_4), 0, 536 }, /* AND */ -{ CPUFUNC(op_220_4), 0, 544 }, /* AND */ -{ CPUFUNC(op_228_4), 0, 552 }, /* AND */ -{ CPUFUNC(op_230_4), 0, 560 }, /* AND */ -{ CPUFUNC(op_238_4), 0, 568 }, /* AND */ -{ CPUFUNC(op_239_4), 0, 569 }, /* AND */ -{ CPUFUNC(op_23c_4), 0, 572 }, /* ANDSR */ -{ CPUFUNC(op_240_4), 0, 576 }, /* AND */ -{ CPUFUNC(op_250_4), 0, 592 }, /* AND */ -{ CPUFUNC(op_258_4), 0, 600 }, /* AND */ -{ CPUFUNC(op_260_4), 0, 608 }, /* AND */ -{ CPUFUNC(op_268_4), 0, 616 }, /* AND */ -{ CPUFUNC(op_270_4), 0, 624 }, /* AND */ -{ CPUFUNC(op_278_4), 0, 632 }, /* AND */ -{ CPUFUNC(op_279_4), 0, 633 }, /* AND */ -{ CPUFUNC(op_27c_4), 0, 636 }, /* ANDSR */ -{ CPUFUNC(op_280_4), 0, 640 }, /* AND */ -{ CPUFUNC(op_290_4), 0, 656 }, /* AND */ -{ CPUFUNC(op_298_4), 0, 664 }, /* AND */ -{ CPUFUNC(op_2a0_4), 0, 672 }, /* AND */ -{ CPUFUNC(op_2a8_4), 0, 680 }, /* AND */ -{ CPUFUNC(op_2b0_4), 0, 688 }, /* AND */ -{ CPUFUNC(op_2b8_4), 0, 696 }, /* AND */ -{ CPUFUNC(op_2b9_4), 0, 697 }, /* AND */ -{ CPUFUNC(op_400_4), 0, 1024 }, /* SUB */ -{ CPUFUNC(op_410_4), 0, 1040 }, /* SUB */ -{ CPUFUNC(op_418_4), 0, 1048 }, /* SUB */ -{ CPUFUNC(op_420_4), 0, 1056 }, /* SUB */ -{ CPUFUNC(op_428_4), 0, 1064 }, /* SUB */ -{ CPUFUNC(op_430_4), 0, 1072 }, /* SUB */ -{ CPUFUNC(op_438_4), 0, 1080 }, /* SUB */ -{ CPUFUNC(op_439_4), 0, 1081 }, /* SUB */ -{ CPUFUNC(op_440_4), 0, 1088 }, /* SUB */ -{ CPUFUNC(op_450_4), 0, 1104 }, /* SUB */ -{ CPUFUNC(op_458_4), 0, 1112 }, /* SUB */ -{ CPUFUNC(op_460_4), 0, 1120 }, /* SUB */ -{ CPUFUNC(op_468_4), 0, 1128 }, /* SUB */ -{ CPUFUNC(op_470_4), 0, 1136 }, /* SUB */ -{ CPUFUNC(op_478_4), 0, 1144 }, /* SUB */ -{ CPUFUNC(op_479_4), 0, 1145 }, /* SUB */ -{ CPUFUNC(op_480_4), 0, 1152 }, /* SUB */ -{ CPUFUNC(op_490_4), 0, 1168 }, /* SUB */ -{ CPUFUNC(op_498_4), 0, 1176 }, /* SUB */ -{ CPUFUNC(op_4a0_4), 0, 1184 }, /* SUB */ -{ CPUFUNC(op_4a8_4), 0, 1192 }, /* SUB */ -{ CPUFUNC(op_4b0_4), 0, 1200 }, /* SUB */ -{ CPUFUNC(op_4b8_4), 0, 1208 }, /* SUB */ -{ CPUFUNC(op_4b9_4), 0, 1209 }, /* SUB */ -{ CPUFUNC(op_600_4), 0, 1536 }, /* ADD */ -{ CPUFUNC(op_610_4), 0, 1552 }, /* ADD */ -{ CPUFUNC(op_618_4), 0, 1560 }, /* ADD */ -{ CPUFUNC(op_620_4), 0, 1568 }, /* ADD */ -{ CPUFUNC(op_628_4), 0, 1576 }, /* ADD */ -{ CPUFUNC(op_630_4), 0, 1584 }, /* ADD */ -{ CPUFUNC(op_638_4), 0, 1592 }, /* ADD */ -{ CPUFUNC(op_639_4), 0, 1593 }, /* ADD */ -{ CPUFUNC(op_640_4), 0, 1600 }, /* ADD */ -{ CPUFUNC(op_650_4), 0, 1616 }, /* ADD */ -{ CPUFUNC(op_658_4), 0, 1624 }, /* ADD */ -{ CPUFUNC(op_660_4), 0, 1632 }, /* ADD */ -{ CPUFUNC(op_668_4), 0, 1640 }, /* ADD */ -{ CPUFUNC(op_670_4), 0, 1648 }, /* ADD */ -{ CPUFUNC(op_678_4), 0, 1656 }, /* ADD */ -{ CPUFUNC(op_679_4), 0, 1657 }, /* ADD */ -{ CPUFUNC(op_680_4), 0, 1664 }, /* ADD */ -{ CPUFUNC(op_690_4), 0, 1680 }, /* ADD */ -{ CPUFUNC(op_698_4), 0, 1688 }, /* ADD */ -{ CPUFUNC(op_6a0_4), 0, 1696 }, /* ADD */ -{ CPUFUNC(op_6a8_4), 0, 1704 }, /* ADD */ -{ CPUFUNC(op_6b0_4), 0, 1712 }, /* ADD */ -{ CPUFUNC(op_6b8_4), 0, 1720 }, /* ADD */ -{ CPUFUNC(op_6b9_4), 0, 1721 }, /* ADD */ -{ CPUFUNC(op_800_4), 0, 2048 }, /* BTST */ -{ CPUFUNC(op_810_4), 0, 2064 }, /* BTST */ -{ CPUFUNC(op_818_4), 0, 2072 }, /* BTST */ -{ CPUFUNC(op_820_4), 0, 2080 }, /* BTST */ -{ CPUFUNC(op_828_4), 0, 2088 }, /* BTST */ -{ CPUFUNC(op_830_4), 0, 2096 }, /* BTST */ -{ CPUFUNC(op_838_4), 0, 2104 }, /* BTST */ -{ CPUFUNC(op_839_4), 0, 2105 }, /* BTST */ -{ CPUFUNC(op_83a_4), 0, 2106 }, /* BTST */ -{ CPUFUNC(op_83b_4), 0, 2107 }, /* BTST */ -{ CPUFUNC(op_83c_4), 0, 2108 }, /* BTST */ -{ CPUFUNC(op_840_4), 0, 2112 }, /* BCHG */ -{ CPUFUNC(op_850_4), 0, 2128 }, /* BCHG */ -{ CPUFUNC(op_858_4), 0, 2136 }, /* BCHG */ -{ CPUFUNC(op_860_4), 0, 2144 }, /* BCHG */ -{ CPUFUNC(op_868_4), 0, 2152 }, /* BCHG */ -{ CPUFUNC(op_870_4), 0, 2160 }, /* BCHG */ -{ CPUFUNC(op_878_4), 0, 2168 }, /* BCHG */ -{ CPUFUNC(op_879_4), 0, 2169 }, /* BCHG */ -{ CPUFUNC(op_87a_4), 0, 2170 }, /* BCHG */ -{ CPUFUNC(op_87b_4), 0, 2171 }, /* BCHG */ -{ CPUFUNC(op_880_4), 0, 2176 }, /* BCLR */ -{ CPUFUNC(op_890_4), 0, 2192 }, /* BCLR */ -{ CPUFUNC(op_898_4), 0, 2200 }, /* BCLR */ -{ CPUFUNC(op_8a0_4), 0, 2208 }, /* BCLR */ -{ CPUFUNC(op_8a8_4), 0, 2216 }, /* BCLR */ -{ CPUFUNC(op_8b0_4), 0, 2224 }, /* BCLR */ -{ CPUFUNC(op_8b8_4), 0, 2232 }, /* BCLR */ -{ CPUFUNC(op_8b9_4), 0, 2233 }, /* BCLR */ -{ CPUFUNC(op_8ba_4), 0, 2234 }, /* BCLR */ -{ CPUFUNC(op_8bb_4), 0, 2235 }, /* BCLR */ -{ CPUFUNC(op_8c0_4), 0, 2240 }, /* BSET */ -{ CPUFUNC(op_8d0_4), 0, 2256 }, /* BSET */ -{ CPUFUNC(op_8d8_4), 0, 2264 }, /* BSET */ -{ CPUFUNC(op_8e0_4), 0, 2272 }, /* BSET */ -{ CPUFUNC(op_8e8_4), 0, 2280 }, /* BSET */ -{ CPUFUNC(op_8f0_4), 0, 2288 }, /* BSET */ -{ CPUFUNC(op_8f8_4), 0, 2296 }, /* BSET */ -{ CPUFUNC(op_8f9_4), 0, 2297 }, /* BSET */ -{ CPUFUNC(op_8fa_4), 0, 2298 }, /* BSET */ -{ CPUFUNC(op_8fb_4), 0, 2299 }, /* BSET */ -{ CPUFUNC(op_a00_4), 0, 2560 }, /* EOR */ -{ CPUFUNC(op_a10_4), 0, 2576 }, /* EOR */ -{ CPUFUNC(op_a18_4), 0, 2584 }, /* EOR */ -{ CPUFUNC(op_a20_4), 0, 2592 }, /* EOR */ -{ CPUFUNC(op_a28_4), 0, 2600 }, /* EOR */ -{ CPUFUNC(op_a30_4), 0, 2608 }, /* EOR */ -{ CPUFUNC(op_a38_4), 0, 2616 }, /* EOR */ -{ CPUFUNC(op_a39_4), 0, 2617 }, /* EOR */ -{ CPUFUNC(op_a3c_4), 0, 2620 }, /* EORSR */ -{ CPUFUNC(op_a40_4), 0, 2624 }, /* EOR */ -{ CPUFUNC(op_a50_4), 0, 2640 }, /* EOR */ -{ CPUFUNC(op_a58_4), 0, 2648 }, /* EOR */ -{ CPUFUNC(op_a60_4), 0, 2656 }, /* EOR */ -{ CPUFUNC(op_a68_4), 0, 2664 }, /* EOR */ -{ CPUFUNC(op_a70_4), 0, 2672 }, /* EOR */ -{ CPUFUNC(op_a78_4), 0, 2680 }, /* EOR */ -{ CPUFUNC(op_a79_4), 0, 2681 }, /* EOR */ -{ CPUFUNC(op_a7c_4), 0, 2684 }, /* EORSR */ -{ CPUFUNC(op_a80_4), 0, 2688 }, /* EOR */ -{ CPUFUNC(op_a90_4), 0, 2704 }, /* EOR */ -{ CPUFUNC(op_a98_4), 0, 2712 }, /* EOR */ -{ CPUFUNC(op_aa0_4), 0, 2720 }, /* EOR */ -{ CPUFUNC(op_aa8_4), 0, 2728 }, /* EOR */ -{ CPUFUNC(op_ab0_4), 0, 2736 }, /* EOR */ -{ CPUFUNC(op_ab8_4), 0, 2744 }, /* EOR */ -{ CPUFUNC(op_ab9_4), 0, 2745 }, /* EOR */ -{ CPUFUNC(op_c00_4), 0, 3072 }, /* CMP */ -{ CPUFUNC(op_c10_4), 0, 3088 }, /* CMP */ -{ CPUFUNC(op_c18_4), 0, 3096 }, /* CMP */ -{ CPUFUNC(op_c20_4), 0, 3104 }, /* CMP */ -{ CPUFUNC(op_c28_4), 0, 3112 }, /* CMP */ -{ CPUFUNC(op_c30_4), 0, 3120 }, /* CMP */ -{ CPUFUNC(op_c38_4), 0, 3128 }, /* CMP */ -{ CPUFUNC(op_c39_4), 0, 3129 }, /* CMP */ -{ CPUFUNC(op_c3a_4), 0, 3130 }, /* CMP */ -{ CPUFUNC(op_c3b_4), 0, 3131 }, /* CMP */ -{ CPUFUNC(op_c40_4), 0, 3136 }, /* CMP */ -{ CPUFUNC(op_c50_4), 0, 3152 }, /* CMP */ -{ CPUFUNC(op_c58_4), 0, 3160 }, /* CMP */ -{ CPUFUNC(op_c60_4), 0, 3168 }, /* CMP */ -{ CPUFUNC(op_c68_4), 0, 3176 }, /* CMP */ -{ CPUFUNC(op_c70_4), 0, 3184 }, /* CMP */ -{ CPUFUNC(op_c78_4), 0, 3192 }, /* CMP */ -{ CPUFUNC(op_c79_4), 0, 3193 }, /* CMP */ -{ CPUFUNC(op_c7a_4), 0, 3194 }, /* CMP */ -{ CPUFUNC(op_c7b_4), 0, 3195 }, /* CMP */ -{ CPUFUNC(op_c80_4), 0, 3200 }, /* CMP */ -{ CPUFUNC(op_c90_4), 0, 3216 }, /* CMP */ -{ CPUFUNC(op_c98_4), 0, 3224 }, /* CMP */ -{ CPUFUNC(op_ca0_4), 0, 3232 }, /* CMP */ -{ CPUFUNC(op_ca8_4), 0, 3240 }, /* CMP */ -{ CPUFUNC(op_cb0_4), 0, 3248 }, /* CMP */ -{ CPUFUNC(op_cb8_4), 0, 3256 }, /* CMP */ -{ CPUFUNC(op_cb9_4), 0, 3257 }, /* CMP */ -{ CPUFUNC(op_cba_4), 0, 3258 }, /* CMP */ -{ CPUFUNC(op_cbb_4), 0, 3259 }, /* CMP */ -{ CPUFUNC(op_1000_4), 0, 4096 }, /* MOVE */ -{ CPUFUNC(op_1008_4), 0, 4104 }, /* MOVE */ -{ CPUFUNC(op_1010_4), 0, 4112 }, /* MOVE */ -{ CPUFUNC(op_1018_4), 0, 4120 }, /* MOVE */ -{ CPUFUNC(op_1020_4), 0, 4128 }, /* MOVE */ -{ CPUFUNC(op_1028_4), 0, 4136 }, /* MOVE */ -{ CPUFUNC(op_1030_4), 0, 4144 }, /* MOVE */ -{ CPUFUNC(op_1038_4), 0, 4152 }, /* MOVE */ -{ CPUFUNC(op_1039_4), 0, 4153 }, /* MOVE */ -{ CPUFUNC(op_103a_4), 0, 4154 }, /* MOVE */ -{ CPUFUNC(op_103b_4), 0, 4155 }, /* MOVE */ -{ CPUFUNC(op_103c_4), 0, 4156 }, /* MOVE */ -{ CPUFUNC(op_1080_4), 0, 4224 }, /* MOVE */ -{ CPUFUNC(op_1088_4), 0, 4232 }, /* MOVE */ -{ CPUFUNC(op_1090_4), 0, 4240 }, /* MOVE */ -{ CPUFUNC(op_1098_4), 0, 4248 }, /* MOVE */ -{ CPUFUNC(op_10a0_4), 0, 4256 }, /* MOVE */ -{ CPUFUNC(op_10a8_4), 0, 4264 }, /* MOVE */ -{ CPUFUNC(op_10b0_4), 0, 4272 }, /* MOVE */ -{ CPUFUNC(op_10b8_4), 0, 4280 }, /* MOVE */ -{ CPUFUNC(op_10b9_4), 0, 4281 }, /* MOVE */ -{ CPUFUNC(op_10ba_4), 0, 4282 }, /* MOVE */ -{ CPUFUNC(op_10bb_4), 0, 4283 }, /* MOVE */ -{ CPUFUNC(op_10bc_4), 0, 4284 }, /* MOVE */ -{ CPUFUNC(op_10c0_4), 0, 4288 }, /* MOVE */ -{ CPUFUNC(op_10c8_4), 0, 4296 }, /* MOVE */ -{ CPUFUNC(op_10d0_4), 0, 4304 }, /* MOVE */ -{ CPUFUNC(op_10d8_4), 0, 4312 }, /* MOVE */ -{ CPUFUNC(op_10e0_4), 0, 4320 }, /* MOVE */ -{ CPUFUNC(op_10e8_4), 0, 4328 }, /* MOVE */ -{ CPUFUNC(op_10f0_4), 0, 4336 }, /* MOVE */ -{ CPUFUNC(op_10f8_4), 0, 4344 }, /* MOVE */ -{ CPUFUNC(op_10f9_4), 0, 4345 }, /* MOVE */ -{ CPUFUNC(op_10fa_4), 0, 4346 }, /* MOVE */ -{ CPUFUNC(op_10fb_4), 0, 4347 }, /* MOVE */ -{ CPUFUNC(op_10fc_4), 0, 4348 }, /* MOVE */ -{ CPUFUNC(op_1100_4), 0, 4352 }, /* MOVE */ -{ CPUFUNC(op_1108_4), 0, 4360 }, /* MOVE */ -{ CPUFUNC(op_1110_4), 0, 4368 }, /* MOVE */ -{ CPUFUNC(op_1118_4), 0, 4376 }, /* MOVE */ -{ CPUFUNC(op_1120_4), 0, 4384 }, /* MOVE */ -{ CPUFUNC(op_1128_4), 0, 4392 }, /* MOVE */ -{ CPUFUNC(op_1130_4), 0, 4400 }, /* MOVE */ -{ CPUFUNC(op_1138_4), 0, 4408 }, /* MOVE */ -{ CPUFUNC(op_1139_4), 0, 4409 }, /* MOVE */ -{ CPUFUNC(op_113a_4), 0, 4410 }, /* MOVE */ -{ CPUFUNC(op_113b_4), 0, 4411 }, /* MOVE */ -{ CPUFUNC(op_113c_4), 0, 4412 }, /* MOVE */ -{ CPUFUNC(op_1140_4), 0, 4416 }, /* MOVE */ -{ CPUFUNC(op_1148_4), 0, 4424 }, /* MOVE */ -{ CPUFUNC(op_1150_4), 0, 4432 }, /* MOVE */ -{ CPUFUNC(op_1158_4), 0, 4440 }, /* MOVE */ -{ CPUFUNC(op_1160_4), 0, 4448 }, /* MOVE */ -{ CPUFUNC(op_1168_4), 0, 4456 }, /* MOVE */ -{ CPUFUNC(op_1170_4), 0, 4464 }, /* MOVE */ -{ CPUFUNC(op_1178_4), 0, 4472 }, /* MOVE */ -{ CPUFUNC(op_1179_4), 0, 4473 }, /* MOVE */ -{ CPUFUNC(op_117a_4), 0, 4474 }, /* MOVE */ -{ CPUFUNC(op_117b_4), 0, 4475 }, /* MOVE */ -{ CPUFUNC(op_117c_4), 0, 4476 }, /* MOVE */ -{ CPUFUNC(op_1180_4), 0, 4480 }, /* MOVE */ -{ CPUFUNC(op_1188_4), 0, 4488 }, /* MOVE */ -{ CPUFUNC(op_1190_4), 0, 4496 }, /* MOVE */ -{ CPUFUNC(op_1198_4), 0, 4504 }, /* MOVE */ -{ CPUFUNC(op_11a0_4), 0, 4512 }, /* MOVE */ -{ CPUFUNC(op_11a8_4), 0, 4520 }, /* MOVE */ -{ CPUFUNC(op_11b0_4), 0, 4528 }, /* MOVE */ -{ CPUFUNC(op_11b8_4), 0, 4536 }, /* MOVE */ -{ CPUFUNC(op_11b9_4), 0, 4537 }, /* MOVE */ -{ CPUFUNC(op_11ba_4), 0, 4538 }, /* MOVE */ -{ CPUFUNC(op_11bb_4), 0, 4539 }, /* MOVE */ -{ CPUFUNC(op_11bc_4), 0, 4540 }, /* MOVE */ -{ CPUFUNC(op_11c0_4), 0, 4544 }, /* MOVE */ -{ CPUFUNC(op_11c8_4), 0, 4552 }, /* MOVE */ -{ CPUFUNC(op_11d0_4), 0, 4560 }, /* MOVE */ -{ CPUFUNC(op_11d8_4), 0, 4568 }, /* MOVE */ -{ CPUFUNC(op_11e0_4), 0, 4576 }, /* MOVE */ -{ CPUFUNC(op_11e8_4), 0, 4584 }, /* MOVE */ -{ CPUFUNC(op_11f0_4), 0, 4592 }, /* MOVE */ -{ CPUFUNC(op_11f8_4), 0, 4600 }, /* MOVE */ -{ CPUFUNC(op_11f9_4), 0, 4601 }, /* MOVE */ -{ CPUFUNC(op_11fa_4), 0, 4602 }, /* MOVE */ -{ CPUFUNC(op_11fb_4), 0, 4603 }, /* MOVE */ -{ CPUFUNC(op_11fc_4), 0, 4604 }, /* MOVE */ -{ CPUFUNC(op_13c0_4), 0, 5056 }, /* MOVE */ -{ CPUFUNC(op_13c8_4), 0, 5064 }, /* MOVE */ -{ CPUFUNC(op_13d0_4), 0, 5072 }, /* MOVE */ -{ CPUFUNC(op_13d8_4), 0, 5080 }, /* MOVE */ -{ CPUFUNC(op_13e0_4), 0, 5088 }, /* MOVE */ -{ CPUFUNC(op_13e8_4), 0, 5096 }, /* MOVE */ -{ CPUFUNC(op_13f0_4), 0, 5104 }, /* MOVE */ -{ CPUFUNC(op_13f8_4), 0, 5112 }, /* MOVE */ -{ CPUFUNC(op_13f9_4), 0, 5113 }, /* MOVE */ -{ CPUFUNC(op_13fa_4), 0, 5114 }, /* MOVE */ -{ CPUFUNC(op_13fb_4), 0, 5115 }, /* MOVE */ -{ CPUFUNC(op_13fc_4), 0, 5116 }, /* MOVE */ -{ CPUFUNC(op_2000_4), 0, 8192 }, /* MOVE */ -{ CPUFUNC(op_2008_4), 0, 8200 }, /* MOVE */ -{ CPUFUNC(op_2010_4), 0, 8208 }, /* MOVE */ -{ CPUFUNC(op_2018_4), 0, 8216 }, /* MOVE */ -{ CPUFUNC(op_2020_4), 0, 8224 }, /* MOVE */ -{ CPUFUNC(op_2028_4), 0, 8232 }, /* MOVE */ -{ CPUFUNC(op_2030_4), 0, 8240 }, /* MOVE */ -{ CPUFUNC(op_2038_4), 0, 8248 }, /* MOVE */ -{ CPUFUNC(op_2039_4), 0, 8249 }, /* MOVE */ -{ CPUFUNC(op_203a_4), 0, 8250 }, /* MOVE */ -{ CPUFUNC(op_203b_4), 0, 8251 }, /* MOVE */ -{ CPUFUNC(op_203c_4), 0, 8252 }, /* MOVE */ -{ CPUFUNC(op_2040_4), 0, 8256 }, /* MOVEA */ -{ CPUFUNC(op_2048_4), 0, 8264 }, /* MOVEA */ -{ CPUFUNC(op_2050_4), 0, 8272 }, /* MOVEA */ -{ CPUFUNC(op_2058_4), 0, 8280 }, /* MOVEA */ -{ CPUFUNC(op_2060_4), 0, 8288 }, /* MOVEA */ -{ CPUFUNC(op_2068_4), 0, 8296 }, /* MOVEA */ -{ CPUFUNC(op_2070_4), 0, 8304 }, /* MOVEA */ -{ CPUFUNC(op_2078_4), 0, 8312 }, /* MOVEA */ -{ CPUFUNC(op_2079_4), 0, 8313 }, /* MOVEA */ -{ CPUFUNC(op_207a_4), 0, 8314 }, /* MOVEA */ -{ CPUFUNC(op_207b_4), 0, 8315 }, /* MOVEA */ -{ CPUFUNC(op_207c_4), 0, 8316 }, /* MOVEA */ -{ CPUFUNC(op_2080_4), 0, 8320 }, /* MOVE */ -{ CPUFUNC(op_2088_4), 0, 8328 }, /* MOVE */ -{ CPUFUNC(op_2090_4), 0, 8336 }, /* MOVE */ -{ CPUFUNC(op_2098_4), 0, 8344 }, /* MOVE */ -{ CPUFUNC(op_20a0_4), 0, 8352 }, /* MOVE */ -{ CPUFUNC(op_20a8_4), 0, 8360 }, /* MOVE */ -{ CPUFUNC(op_20b0_4), 0, 8368 }, /* MOVE */ -{ CPUFUNC(op_20b8_4), 0, 8376 }, /* MOVE */ -{ CPUFUNC(op_20b9_4), 0, 8377 }, /* MOVE */ -{ CPUFUNC(op_20ba_4), 0, 8378 }, /* MOVE */ -{ CPUFUNC(op_20bb_4), 0, 8379 }, /* MOVE */ -{ CPUFUNC(op_20bc_4), 0, 8380 }, /* MOVE */ -{ CPUFUNC(op_20c0_4), 0, 8384 }, /* MOVE */ -{ CPUFUNC(op_20c8_4), 0, 8392 }, /* MOVE */ -{ CPUFUNC(op_20d0_4), 0, 8400 }, /* MOVE */ -{ CPUFUNC(op_20d8_4), 0, 8408 }, /* MOVE */ -{ CPUFUNC(op_20e0_4), 0, 8416 }, /* MOVE */ -{ CPUFUNC(op_20e8_4), 0, 8424 }, /* MOVE */ -{ CPUFUNC(op_20f0_4), 0, 8432 }, /* MOVE */ -{ CPUFUNC(op_20f8_4), 0, 8440 }, /* MOVE */ -{ CPUFUNC(op_20f9_4), 0, 8441 }, /* MOVE */ -{ CPUFUNC(op_20fa_4), 0, 8442 }, /* MOVE */ -{ CPUFUNC(op_20fb_4), 0, 8443 }, /* MOVE */ -{ CPUFUNC(op_20fc_4), 0, 8444 }, /* MOVE */ -{ CPUFUNC(op_2100_4), 0, 8448 }, /* MOVE */ -{ CPUFUNC(op_2108_4), 0, 8456 }, /* MOVE */ -{ CPUFUNC(op_2110_4), 0, 8464 }, /* MOVE */ -{ CPUFUNC(op_2118_4), 0, 8472 }, /* MOVE */ -{ CPUFUNC(op_2120_4), 0, 8480 }, /* MOVE */ -{ CPUFUNC(op_2128_4), 0, 8488 }, /* MOVE */ -{ CPUFUNC(op_2130_4), 0, 8496 }, /* MOVE */ -{ CPUFUNC(op_2138_4), 0, 8504 }, /* MOVE */ -{ CPUFUNC(op_2139_4), 0, 8505 }, /* MOVE */ -{ CPUFUNC(op_213a_4), 0, 8506 }, /* MOVE */ -{ CPUFUNC(op_213b_4), 0, 8507 }, /* MOVE */ -{ CPUFUNC(op_213c_4), 0, 8508 }, /* MOVE */ -{ CPUFUNC(op_2140_4), 0, 8512 }, /* MOVE */ -{ CPUFUNC(op_2148_4), 0, 8520 }, /* MOVE */ -{ CPUFUNC(op_2150_4), 0, 8528 }, /* MOVE */ -{ CPUFUNC(op_2158_4), 0, 8536 }, /* MOVE */ -{ CPUFUNC(op_2160_4), 0, 8544 }, /* MOVE */ -{ CPUFUNC(op_2168_4), 0, 8552 }, /* MOVE */ -{ CPUFUNC(op_2170_4), 0, 8560 }, /* MOVE */ -{ CPUFUNC(op_2178_4), 0, 8568 }, /* MOVE */ -{ CPUFUNC(op_2179_4), 0, 8569 }, /* MOVE */ -{ CPUFUNC(op_217a_4), 0, 8570 }, /* MOVE */ -{ CPUFUNC(op_217b_4), 0, 8571 }, /* MOVE */ -{ CPUFUNC(op_217c_4), 0, 8572 }, /* MOVE */ -{ CPUFUNC(op_2180_4), 0, 8576 }, /* MOVE */ -{ CPUFUNC(op_2188_4), 0, 8584 }, /* MOVE */ -{ CPUFUNC(op_2190_4), 0, 8592 }, /* MOVE */ -{ CPUFUNC(op_2198_4), 0, 8600 }, /* MOVE */ -{ CPUFUNC(op_21a0_4), 0, 8608 }, /* MOVE */ -{ CPUFUNC(op_21a8_4), 0, 8616 }, /* MOVE */ -{ CPUFUNC(op_21b0_4), 0, 8624 }, /* MOVE */ -{ CPUFUNC(op_21b8_4), 0, 8632 }, /* MOVE */ -{ CPUFUNC(op_21b9_4), 0, 8633 }, /* MOVE */ -{ CPUFUNC(op_21ba_4), 0, 8634 }, /* MOVE */ -{ CPUFUNC(op_21bb_4), 0, 8635 }, /* MOVE */ -{ CPUFUNC(op_21bc_4), 0, 8636 }, /* MOVE */ -{ CPUFUNC(op_21c0_4), 0, 8640 }, /* MOVE */ -{ CPUFUNC(op_21c8_4), 0, 8648 }, /* MOVE */ -{ CPUFUNC(op_21d0_4), 0, 8656 }, /* MOVE */ -{ CPUFUNC(op_21d8_4), 0, 8664 }, /* MOVE */ -{ CPUFUNC(op_21e0_4), 0, 8672 }, /* MOVE */ -{ CPUFUNC(op_21e8_4), 0, 8680 }, /* MOVE */ -{ CPUFUNC(op_21f0_4), 0, 8688 }, /* MOVE */ -{ CPUFUNC(op_21f8_4), 0, 8696 }, /* MOVE */ -{ CPUFUNC(op_21f9_4), 0, 8697 }, /* MOVE */ -{ CPUFUNC(op_21fa_4), 0, 8698 }, /* MOVE */ -{ CPUFUNC(op_21fb_4), 0, 8699 }, /* MOVE */ -{ CPUFUNC(op_21fc_4), 0, 8700 }, /* MOVE */ -{ CPUFUNC(op_23c0_4), 0, 9152 }, /* MOVE */ -{ CPUFUNC(op_23c8_4), 0, 9160 }, /* MOVE */ -{ CPUFUNC(op_23d0_4), 0, 9168 }, /* MOVE */ -{ CPUFUNC(op_23d8_4), 0, 9176 }, /* MOVE */ -{ CPUFUNC(op_23e0_4), 0, 9184 }, /* MOVE */ -{ CPUFUNC(op_23e8_4), 0, 9192 }, /* MOVE */ -{ CPUFUNC(op_23f0_4), 0, 9200 }, /* MOVE */ -{ CPUFUNC(op_23f8_4), 0, 9208 }, /* MOVE */ -{ CPUFUNC(op_23f9_4), 0, 9209 }, /* MOVE */ -{ CPUFUNC(op_23fa_4), 0, 9210 }, /* MOVE */ -{ CPUFUNC(op_23fb_4), 0, 9211 }, /* MOVE */ -{ CPUFUNC(op_23fc_4), 0, 9212 }, /* MOVE */ -{ CPUFUNC(op_3000_4), 0, 12288 }, /* MOVE */ -{ CPUFUNC(op_3008_4), 0, 12296 }, /* MOVE */ -{ CPUFUNC(op_3010_4), 0, 12304 }, /* MOVE */ -{ CPUFUNC(op_3018_4), 0, 12312 }, /* MOVE */ -{ CPUFUNC(op_3020_4), 0, 12320 }, /* MOVE */ -{ CPUFUNC(op_3028_4), 0, 12328 }, /* MOVE */ -{ CPUFUNC(op_3030_4), 0, 12336 }, /* MOVE */ -{ CPUFUNC(op_3038_4), 0, 12344 }, /* MOVE */ -{ CPUFUNC(op_3039_4), 0, 12345 }, /* MOVE */ -{ CPUFUNC(op_303a_4), 0, 12346 }, /* MOVE */ -{ CPUFUNC(op_303b_4), 0, 12347 }, /* MOVE */ -{ CPUFUNC(op_303c_4), 0, 12348 }, /* MOVE */ -{ CPUFUNC(op_3040_4), 0, 12352 }, /* MOVEA */ -{ CPUFUNC(op_3048_4), 0, 12360 }, /* MOVEA */ -{ CPUFUNC(op_3050_4), 0, 12368 }, /* MOVEA */ -{ CPUFUNC(op_3058_4), 0, 12376 }, /* MOVEA */ -{ CPUFUNC(op_3060_4), 0, 12384 }, /* MOVEA */ -{ CPUFUNC(op_3068_4), 0, 12392 }, /* MOVEA */ -{ CPUFUNC(op_3070_4), 0, 12400 }, /* MOVEA */ -{ CPUFUNC(op_3078_4), 0, 12408 }, /* MOVEA */ -{ CPUFUNC(op_3079_4), 0, 12409 }, /* MOVEA */ -{ CPUFUNC(op_307a_4), 0, 12410 }, /* MOVEA */ -{ CPUFUNC(op_307b_4), 0, 12411 }, /* MOVEA */ -{ CPUFUNC(op_307c_4), 0, 12412 }, /* MOVEA */ -{ CPUFUNC(op_3080_4), 0, 12416 }, /* MOVE */ -{ CPUFUNC(op_3088_4), 0, 12424 }, /* MOVE */ -{ CPUFUNC(op_3090_4), 0, 12432 }, /* MOVE */ -{ CPUFUNC(op_3098_4), 0, 12440 }, /* MOVE */ -{ CPUFUNC(op_30a0_4), 0, 12448 }, /* MOVE */ -{ CPUFUNC(op_30a8_4), 0, 12456 }, /* MOVE */ -{ CPUFUNC(op_30b0_4), 0, 12464 }, /* MOVE */ -{ CPUFUNC(op_30b8_4), 0, 12472 }, /* MOVE */ -{ CPUFUNC(op_30b9_4), 0, 12473 }, /* MOVE */ -{ CPUFUNC(op_30ba_4), 0, 12474 }, /* MOVE */ -{ CPUFUNC(op_30bb_4), 0, 12475 }, /* MOVE */ -{ CPUFUNC(op_30bc_4), 0, 12476 }, /* MOVE */ -{ CPUFUNC(op_30c0_4), 0, 12480 }, /* MOVE */ -{ CPUFUNC(op_30c8_4), 0, 12488 }, /* MOVE */ -{ CPUFUNC(op_30d0_4), 0, 12496 }, /* MOVE */ -{ CPUFUNC(op_30d8_4), 0, 12504 }, /* MOVE */ -{ CPUFUNC(op_30e0_4), 0, 12512 }, /* MOVE */ -{ CPUFUNC(op_30e8_4), 0, 12520 }, /* MOVE */ -{ CPUFUNC(op_30f0_4), 0, 12528 }, /* MOVE */ -{ CPUFUNC(op_30f8_4), 0, 12536 }, /* MOVE */ -{ CPUFUNC(op_30f9_4), 0, 12537 }, /* MOVE */ -{ CPUFUNC(op_30fa_4), 0, 12538 }, /* MOVE */ -{ CPUFUNC(op_30fb_4), 0, 12539 }, /* MOVE */ -{ CPUFUNC(op_30fc_4), 0, 12540 }, /* MOVE */ -{ CPUFUNC(op_3100_4), 0, 12544 }, /* MOVE */ -{ CPUFUNC(op_3108_4), 0, 12552 }, /* MOVE */ -{ CPUFUNC(op_3110_4), 0, 12560 }, /* MOVE */ -{ CPUFUNC(op_3118_4), 0, 12568 }, /* MOVE */ -{ CPUFUNC(op_3120_4), 0, 12576 }, /* MOVE */ -{ CPUFUNC(op_3128_4), 0, 12584 }, /* MOVE */ -{ CPUFUNC(op_3130_4), 0, 12592 }, /* MOVE */ -{ CPUFUNC(op_3138_4), 0, 12600 }, /* MOVE */ -{ CPUFUNC(op_3139_4), 0, 12601 }, /* MOVE */ -{ CPUFUNC(op_313a_4), 0, 12602 }, /* MOVE */ -{ CPUFUNC(op_313b_4), 0, 12603 }, /* MOVE */ -{ CPUFUNC(op_313c_4), 0, 12604 }, /* MOVE */ -{ CPUFUNC(op_3140_4), 0, 12608 }, /* MOVE */ -{ CPUFUNC(op_3148_4), 0, 12616 }, /* MOVE */ -{ CPUFUNC(op_3150_4), 0, 12624 }, /* MOVE */ -{ CPUFUNC(op_3158_4), 0, 12632 }, /* MOVE */ -{ CPUFUNC(op_3160_4), 0, 12640 }, /* MOVE */ -{ CPUFUNC(op_3168_4), 0, 12648 }, /* MOVE */ -{ CPUFUNC(op_3170_4), 0, 12656 }, /* MOVE */ -{ CPUFUNC(op_3178_4), 0, 12664 }, /* MOVE */ -{ CPUFUNC(op_3179_4), 0, 12665 }, /* MOVE */ -{ CPUFUNC(op_317a_4), 0, 12666 }, /* MOVE */ -{ CPUFUNC(op_317b_4), 0, 12667 }, /* MOVE */ -{ CPUFUNC(op_317c_4), 0, 12668 }, /* MOVE */ -{ CPUFUNC(op_3180_4), 0, 12672 }, /* MOVE */ -{ CPUFUNC(op_3188_4), 0, 12680 }, /* MOVE */ -{ CPUFUNC(op_3190_4), 0, 12688 }, /* MOVE */ -{ CPUFUNC(op_3198_4), 0, 12696 }, /* MOVE */ -{ CPUFUNC(op_31a0_4), 0, 12704 }, /* MOVE */ -{ CPUFUNC(op_31a8_4), 0, 12712 }, /* MOVE */ -{ CPUFUNC(op_31b0_4), 0, 12720 }, /* MOVE */ -{ CPUFUNC(op_31b8_4), 0, 12728 }, /* MOVE */ -{ CPUFUNC(op_31b9_4), 0, 12729 }, /* MOVE */ -{ CPUFUNC(op_31ba_4), 0, 12730 }, /* MOVE */ -{ CPUFUNC(op_31bb_4), 0, 12731 }, /* MOVE */ -{ CPUFUNC(op_31bc_4), 0, 12732 }, /* MOVE */ -{ CPUFUNC(op_31c0_4), 0, 12736 }, /* MOVE */ -{ CPUFUNC(op_31c8_4), 0, 12744 }, /* MOVE */ -{ CPUFUNC(op_31d0_4), 0, 12752 }, /* MOVE */ -{ CPUFUNC(op_31d8_4), 0, 12760 }, /* MOVE */ -{ CPUFUNC(op_31e0_4), 0, 12768 }, /* MOVE */ -{ CPUFUNC(op_31e8_4), 0, 12776 }, /* MOVE */ -{ CPUFUNC(op_31f0_4), 0, 12784 }, /* MOVE */ -{ CPUFUNC(op_31f8_4), 0, 12792 }, /* MOVE */ -{ CPUFUNC(op_31f9_4), 0, 12793 }, /* MOVE */ -{ CPUFUNC(op_31fa_4), 0, 12794 }, /* MOVE */ -{ CPUFUNC(op_31fb_4), 0, 12795 }, /* MOVE */ -{ CPUFUNC(op_31fc_4), 0, 12796 }, /* MOVE */ -{ CPUFUNC(op_33c0_4), 0, 13248 }, /* MOVE */ -{ CPUFUNC(op_33c8_4), 0, 13256 }, /* MOVE */ -{ CPUFUNC(op_33d0_4), 0, 13264 }, /* MOVE */ -{ CPUFUNC(op_33d8_4), 0, 13272 }, /* MOVE */ -{ CPUFUNC(op_33e0_4), 0, 13280 }, /* MOVE */ -{ CPUFUNC(op_33e8_4), 0, 13288 }, /* MOVE */ -{ CPUFUNC(op_33f0_4), 0, 13296 }, /* MOVE */ -{ CPUFUNC(op_33f8_4), 0, 13304 }, /* MOVE */ -{ CPUFUNC(op_33f9_4), 0, 13305 }, /* MOVE */ -{ CPUFUNC(op_33fa_4), 0, 13306 }, /* MOVE */ -{ CPUFUNC(op_33fb_4), 0, 13307 }, /* MOVE */ -{ CPUFUNC(op_33fc_4), 0, 13308 }, /* MOVE */ -{ CPUFUNC(op_4000_4), 0, 16384 }, /* NEGX */ -{ CPUFUNC(op_4010_4), 0, 16400 }, /* NEGX */ -{ CPUFUNC(op_4018_4), 0, 16408 }, /* NEGX */ -{ CPUFUNC(op_4020_4), 0, 16416 }, /* NEGX */ -{ CPUFUNC(op_4028_4), 0, 16424 }, /* NEGX */ -{ CPUFUNC(op_4030_4), 0, 16432 }, /* NEGX */ -{ CPUFUNC(op_4038_4), 0, 16440 }, /* NEGX */ -{ CPUFUNC(op_4039_4), 0, 16441 }, /* NEGX */ -{ CPUFUNC(op_4040_4), 0, 16448 }, /* NEGX */ -{ CPUFUNC(op_4050_4), 0, 16464 }, /* NEGX */ -{ CPUFUNC(op_4058_4), 0, 16472 }, /* NEGX */ -{ CPUFUNC(op_4060_4), 0, 16480 }, /* NEGX */ -{ CPUFUNC(op_4068_4), 0, 16488 }, /* NEGX */ -{ CPUFUNC(op_4070_4), 0, 16496 }, /* NEGX */ -{ CPUFUNC(op_4078_4), 0, 16504 }, /* NEGX */ -{ CPUFUNC(op_4079_4), 0, 16505 }, /* NEGX */ -{ CPUFUNC(op_4080_4), 0, 16512 }, /* NEGX */ -{ CPUFUNC(op_4090_4), 0, 16528 }, /* NEGX */ -{ CPUFUNC(op_4098_4), 0, 16536 }, /* NEGX */ -{ CPUFUNC(op_40a0_4), 0, 16544 }, /* NEGX */ -{ CPUFUNC(op_40a8_4), 0, 16552 }, /* NEGX */ -{ CPUFUNC(op_40b0_4), 0, 16560 }, /* NEGX */ -{ CPUFUNC(op_40b8_4), 0, 16568 }, /* NEGX */ -{ CPUFUNC(op_40b9_4), 0, 16569 }, /* NEGX */ -{ CPUFUNC(op_40c0_4), 0, 16576 }, /* MVSR2 */ -{ CPUFUNC(op_40d0_4), 0, 16592 }, /* MVSR2 */ -{ CPUFUNC(op_40d8_4), 0, 16600 }, /* MVSR2 */ -{ CPUFUNC(op_40e0_4), 0, 16608 }, /* MVSR2 */ -{ CPUFUNC(op_40e8_4), 0, 16616 }, /* MVSR2 */ -{ CPUFUNC(op_40f0_4), 0, 16624 }, /* MVSR2 */ -{ CPUFUNC(op_40f8_4), 0, 16632 }, /* MVSR2 */ -{ CPUFUNC(op_40f9_4), 0, 16633 }, /* MVSR2 */ -{ CPUFUNC(op_4180_4), 0, 16768 }, /* CHK */ -{ CPUFUNC(op_4190_4), 0, 16784 }, /* CHK */ -{ CPUFUNC(op_4198_4), 0, 16792 }, /* CHK */ -{ CPUFUNC(op_41a0_4), 0, 16800 }, /* CHK */ -{ CPUFUNC(op_41a8_4), 0, 16808 }, /* CHK */ -{ CPUFUNC(op_41b0_4), 0, 16816 }, /* CHK */ -{ CPUFUNC(op_41b8_4), 0, 16824 }, /* CHK */ -{ CPUFUNC(op_41b9_4), 0, 16825 }, /* CHK */ -{ CPUFUNC(op_41ba_4), 0, 16826 }, /* CHK */ -{ CPUFUNC(op_41bb_4), 0, 16827 }, /* CHK */ -{ CPUFUNC(op_41bc_4), 0, 16828 }, /* CHK */ -{ CPUFUNC(op_41d0_4), 0, 16848 }, /* LEA */ -{ CPUFUNC(op_41e8_4), 0, 16872 }, /* LEA */ -{ CPUFUNC(op_41f0_4), 0, 16880 }, /* LEA */ -{ CPUFUNC(op_41f8_4), 0, 16888 }, /* LEA */ -{ CPUFUNC(op_41f9_4), 0, 16889 }, /* LEA */ -{ CPUFUNC(op_41fa_4), 0, 16890 }, /* LEA */ -{ CPUFUNC(op_41fb_4), 0, 16891 }, /* LEA */ -{ CPUFUNC(op_4200_4), 0, 16896 }, /* CLR */ -{ CPUFUNC(op_4210_4), 0, 16912 }, /* CLR */ -{ CPUFUNC(op_4218_4), 0, 16920 }, /* CLR */ -{ CPUFUNC(op_4220_4), 0, 16928 }, /* CLR */ -{ CPUFUNC(op_4228_4), 0, 16936 }, /* CLR */ -{ CPUFUNC(op_4230_4), 0, 16944 }, /* CLR */ -{ CPUFUNC(op_4238_4), 0, 16952 }, /* CLR */ -{ CPUFUNC(op_4239_4), 0, 16953 }, /* CLR */ -{ CPUFUNC(op_4240_4), 0, 16960 }, /* CLR */ -{ CPUFUNC(op_4250_4), 0, 16976 }, /* CLR */ -{ CPUFUNC(op_4258_4), 0, 16984 }, /* CLR */ -{ CPUFUNC(op_4260_4), 0, 16992 }, /* CLR */ -{ CPUFUNC(op_4268_4), 0, 17000 }, /* CLR */ -{ CPUFUNC(op_4270_4), 0, 17008 }, /* CLR */ -{ CPUFUNC(op_4278_4), 0, 17016 }, /* CLR */ -{ CPUFUNC(op_4279_4), 0, 17017 }, /* CLR */ -{ CPUFUNC(op_4280_4), 0, 17024 }, /* CLR */ -{ CPUFUNC(op_4290_4), 0, 17040 }, /* CLR */ -{ CPUFUNC(op_4298_4), 0, 17048 }, /* CLR */ -{ CPUFUNC(op_42a0_4), 0, 17056 }, /* CLR */ -{ CPUFUNC(op_42a8_4), 0, 17064 }, /* CLR */ -{ CPUFUNC(op_42b0_4), 0, 17072 }, /* CLR */ -{ CPUFUNC(op_42b8_4), 0, 17080 }, /* CLR */ -{ CPUFUNC(op_42b9_4), 0, 17081 }, /* CLR */ -{ CPUFUNC(op_4400_4), 0, 17408 }, /* NEG */ -{ CPUFUNC(op_4410_4), 0, 17424 }, /* NEG */ -{ CPUFUNC(op_4418_4), 0, 17432 }, /* NEG */ -{ CPUFUNC(op_4420_4), 0, 17440 }, /* NEG */ -{ CPUFUNC(op_4428_4), 0, 17448 }, /* NEG */ -{ CPUFUNC(op_4430_4), 0, 17456 }, /* NEG */ -{ CPUFUNC(op_4438_4), 0, 17464 }, /* NEG */ -{ CPUFUNC(op_4439_4), 0, 17465 }, /* NEG */ -{ CPUFUNC(op_4440_4), 0, 17472 }, /* NEG */ -{ CPUFUNC(op_4450_4), 0, 17488 }, /* NEG */ -{ CPUFUNC(op_4458_4), 0, 17496 }, /* NEG */ -{ CPUFUNC(op_4460_4), 0, 17504 }, /* NEG */ -{ CPUFUNC(op_4468_4), 0, 17512 }, /* NEG */ -{ CPUFUNC(op_4470_4), 0, 17520 }, /* NEG */ -{ CPUFUNC(op_4478_4), 0, 17528 }, /* NEG */ -{ CPUFUNC(op_4479_4), 0, 17529 }, /* NEG */ -{ CPUFUNC(op_4480_4), 0, 17536 }, /* NEG */ -{ CPUFUNC(op_4490_4), 0, 17552 }, /* NEG */ -{ CPUFUNC(op_4498_4), 0, 17560 }, /* NEG */ -{ CPUFUNC(op_44a0_4), 0, 17568 }, /* NEG */ -{ CPUFUNC(op_44a8_4), 0, 17576 }, /* NEG */ -{ CPUFUNC(op_44b0_4), 0, 17584 }, /* NEG */ -{ CPUFUNC(op_44b8_4), 0, 17592 }, /* NEG */ -{ CPUFUNC(op_44b9_4), 0, 17593 }, /* NEG */ -{ CPUFUNC(op_44c0_4), 0, 17600 }, /* MV2SR */ -{ CPUFUNC(op_44d0_4), 0, 17616 }, /* MV2SR */ -{ CPUFUNC(op_44d8_4), 0, 17624 }, /* MV2SR */ -{ CPUFUNC(op_44e0_4), 0, 17632 }, /* MV2SR */ -{ CPUFUNC(op_44e8_4), 0, 17640 }, /* MV2SR */ -{ CPUFUNC(op_44f0_4), 0, 17648 }, /* MV2SR */ -{ CPUFUNC(op_44f8_4), 0, 17656 }, /* MV2SR */ -{ CPUFUNC(op_44f9_4), 0, 17657 }, /* MV2SR */ -{ CPUFUNC(op_44fa_4), 0, 17658 }, /* MV2SR */ -{ CPUFUNC(op_44fb_4), 0, 17659 }, /* MV2SR */ -{ CPUFUNC(op_44fc_4), 0, 17660 }, /* MV2SR */ -{ CPUFUNC(op_4600_4), 0, 17920 }, /* NOT */ -{ CPUFUNC(op_4610_4), 0, 17936 }, /* NOT */ -{ CPUFUNC(op_4618_4), 0, 17944 }, /* NOT */ -{ CPUFUNC(op_4620_4), 0, 17952 }, /* NOT */ -{ CPUFUNC(op_4628_4), 0, 17960 }, /* NOT */ -{ CPUFUNC(op_4630_4), 0, 17968 }, /* NOT */ -{ CPUFUNC(op_4638_4), 0, 17976 }, /* NOT */ -{ CPUFUNC(op_4639_4), 0, 17977 }, /* NOT */ -{ CPUFUNC(op_4640_4), 0, 17984 }, /* NOT */ -{ CPUFUNC(op_4650_4), 0, 18000 }, /* NOT */ -{ CPUFUNC(op_4658_4), 0, 18008 }, /* NOT */ -{ CPUFUNC(op_4660_4), 0, 18016 }, /* NOT */ -{ CPUFUNC(op_4668_4), 0, 18024 }, /* NOT */ -{ CPUFUNC(op_4670_4), 0, 18032 }, /* NOT */ -{ CPUFUNC(op_4678_4), 0, 18040 }, /* NOT */ -{ CPUFUNC(op_4679_4), 0, 18041 }, /* NOT */ -{ CPUFUNC(op_4680_4), 0, 18048 }, /* NOT */ -{ CPUFUNC(op_4690_4), 0, 18064 }, /* NOT */ -{ CPUFUNC(op_4698_4), 0, 18072 }, /* NOT */ -{ CPUFUNC(op_46a0_4), 0, 18080 }, /* NOT */ -{ CPUFUNC(op_46a8_4), 0, 18088 }, /* NOT */ -{ CPUFUNC(op_46b0_4), 0, 18096 }, /* NOT */ -{ CPUFUNC(op_46b8_4), 0, 18104 }, /* NOT */ -{ CPUFUNC(op_46b9_4), 0, 18105 }, /* NOT */ -{ CPUFUNC(op_46c0_4), 0, 18112 }, /* MV2SR */ -{ CPUFUNC(op_46d0_4), 0, 18128 }, /* MV2SR */ -{ CPUFUNC(op_46d8_4), 0, 18136 }, /* MV2SR */ -{ CPUFUNC(op_46e0_4), 0, 18144 }, /* MV2SR */ -{ CPUFUNC(op_46e8_4), 0, 18152 }, /* MV2SR */ -{ CPUFUNC(op_46f0_4), 0, 18160 }, /* MV2SR */ -{ CPUFUNC(op_46f8_4), 0, 18168 }, /* MV2SR */ -{ CPUFUNC(op_46f9_4), 0, 18169 }, /* MV2SR */ -{ CPUFUNC(op_46fa_4), 0, 18170 }, /* MV2SR */ -{ CPUFUNC(op_46fb_4), 0, 18171 }, /* MV2SR */ -{ CPUFUNC(op_46fc_4), 0, 18172 }, /* MV2SR */ -{ CPUFUNC(op_4800_4), 0, 18432 }, /* NBCD */ -{ CPUFUNC(op_4810_4), 0, 18448 }, /* NBCD */ -{ CPUFUNC(op_4818_4), 0, 18456 }, /* NBCD */ -{ CPUFUNC(op_4820_4), 0, 18464 }, /* NBCD */ -{ CPUFUNC(op_4828_4), 0, 18472 }, /* NBCD */ -{ CPUFUNC(op_4830_4), 0, 18480 }, /* NBCD */ -{ CPUFUNC(op_4838_4), 0, 18488 }, /* NBCD */ -{ CPUFUNC(op_4839_4), 0, 18489 }, /* NBCD */ -{ CPUFUNC(op_4840_4), 0, 18496 }, /* SWAP */ -{ CPUFUNC(op_4850_4), 0, 18512 }, /* PEA */ -{ CPUFUNC(op_4868_4), 0, 18536 }, /* PEA */ -{ CPUFUNC(op_4870_4), 0, 18544 }, /* PEA */ -{ CPUFUNC(op_4878_4), 0, 18552 }, /* PEA */ -{ CPUFUNC(op_4879_4), 0, 18553 }, /* PEA */ -{ CPUFUNC(op_487a_4), 0, 18554 }, /* PEA */ -{ CPUFUNC(op_487b_4), 0, 18555 }, /* PEA */ -{ CPUFUNC(op_4880_4), 0, 18560 }, /* EXT */ -{ CPUFUNC(op_4890_4), 0, 18576 }, /* MVMLE */ -{ CPUFUNC(op_48a0_4), 0, 18592 }, /* MVMLE */ -{ CPUFUNC(op_48a8_4), 0, 18600 }, /* MVMLE */ -{ CPUFUNC(op_48b0_4), 0, 18608 }, /* MVMLE */ -{ CPUFUNC(op_48b8_4), 0, 18616 }, /* MVMLE */ -{ CPUFUNC(op_48b9_4), 0, 18617 }, /* MVMLE */ -{ CPUFUNC(op_48c0_4), 0, 18624 }, /* EXT */ -{ CPUFUNC(op_48d0_4), 0, 18640 }, /* MVMLE */ -{ CPUFUNC(op_48e0_4), 0, 18656 }, /* MVMLE */ -{ CPUFUNC(op_48e8_4), 0, 18664 }, /* MVMLE */ -{ CPUFUNC(op_48f0_4), 0, 18672 }, /* MVMLE */ -{ CPUFUNC(op_48f8_4), 0, 18680 }, /* MVMLE */ -{ CPUFUNC(op_48f9_4), 0, 18681 }, /* MVMLE */ -{ CPUFUNC(op_4a00_4), 0, 18944 }, /* TST */ -{ CPUFUNC(op_4a10_4), 0, 18960 }, /* TST */ -{ CPUFUNC(op_4a18_4), 0, 18968 }, /* TST */ -{ CPUFUNC(op_4a20_4), 0, 18976 }, /* TST */ -{ CPUFUNC(op_4a28_4), 0, 18984 }, /* TST */ -{ CPUFUNC(op_4a30_4), 0, 18992 }, /* TST */ -{ CPUFUNC(op_4a38_4), 0, 19000 }, /* TST */ -{ CPUFUNC(op_4a39_4), 0, 19001 }, /* TST */ -{ CPUFUNC(op_4a3a_4), 0, 19002 }, /* TST */ -{ CPUFUNC(op_4a3b_4), 0, 19003 }, /* TST */ -{ CPUFUNC(op_4a3c_4), 0, 19004 }, /* TST */ -{ CPUFUNC(op_4a40_4), 0, 19008 }, /* TST */ -{ CPUFUNC(op_4a48_4), 0, 19016 }, /* TST */ -{ CPUFUNC(op_4a50_4), 0, 19024 }, /* TST */ -{ CPUFUNC(op_4a58_4), 0, 19032 }, /* TST */ -{ CPUFUNC(op_4a60_4), 0, 19040 }, /* TST */ -{ CPUFUNC(op_4a68_4), 0, 19048 }, /* TST */ -{ CPUFUNC(op_4a70_4), 0, 19056 }, /* TST */ -{ CPUFUNC(op_4a78_4), 0, 19064 }, /* TST */ -{ CPUFUNC(op_4a79_4), 0, 19065 }, /* TST */ -{ CPUFUNC(op_4a7a_4), 0, 19066 }, /* TST */ -{ CPUFUNC(op_4a7b_4), 0, 19067 }, /* TST */ -{ CPUFUNC(op_4a7c_4), 0, 19068 }, /* TST */ -{ CPUFUNC(op_4a80_4), 0, 19072 }, /* TST */ -{ CPUFUNC(op_4a88_4), 0, 19080 }, /* TST */ -{ CPUFUNC(op_4a90_4), 0, 19088 }, /* TST */ -{ CPUFUNC(op_4a98_4), 0, 19096 }, /* TST */ -{ CPUFUNC(op_4aa0_4), 0, 19104 }, /* TST */ -{ CPUFUNC(op_4aa8_4), 0, 19112 }, /* TST */ -{ CPUFUNC(op_4ab0_4), 0, 19120 }, /* TST */ -{ CPUFUNC(op_4ab8_4), 0, 19128 }, /* TST */ -{ CPUFUNC(op_4ab9_4), 0, 19129 }, /* TST */ -{ CPUFUNC(op_4aba_4), 0, 19130 }, /* TST */ -{ CPUFUNC(op_4abb_4), 0, 19131 }, /* TST */ -{ CPUFUNC(op_4abc_4), 0, 19132 }, /* TST */ -{ CPUFUNC(op_4ac0_4), 0, 19136 }, /* TAS */ -{ CPUFUNC(op_4ad0_4), 0, 19152 }, /* TAS */ -{ CPUFUNC(op_4ad8_4), 0, 19160 }, /* TAS */ -{ CPUFUNC(op_4ae0_4), 0, 19168 }, /* TAS */ -{ CPUFUNC(op_4ae8_4), 0, 19176 }, /* TAS */ -{ CPUFUNC(op_4af0_4), 0, 19184 }, /* TAS */ -{ CPUFUNC(op_4af8_4), 0, 19192 }, /* TAS */ -{ CPUFUNC(op_4af9_4), 0, 19193 }, /* TAS */ -{ CPUFUNC(op_4c90_4), 0, 19600 }, /* MVMEL */ -{ CPUFUNC(op_4c98_4), 0, 19608 }, /* MVMEL */ -{ CPUFUNC(op_4ca8_4), 0, 19624 }, /* MVMEL */ -{ CPUFUNC(op_4cb0_4), 0, 19632 }, /* MVMEL */ -{ CPUFUNC(op_4cb8_4), 0, 19640 }, /* MVMEL */ -{ CPUFUNC(op_4cb9_4), 0, 19641 }, /* MVMEL */ -{ CPUFUNC(op_4cba_4), 0, 19642 }, /* MVMEL */ -{ CPUFUNC(op_4cbb_4), 0, 19643 }, /* MVMEL */ -{ CPUFUNC(op_4cd0_4), 0, 19664 }, /* MVMEL */ -{ CPUFUNC(op_4cd8_4), 0, 19672 }, /* MVMEL */ -{ CPUFUNC(op_4ce8_4), 0, 19688 }, /* MVMEL */ -{ CPUFUNC(op_4cf0_4), 0, 19696 }, /* MVMEL */ -{ CPUFUNC(op_4cf8_4), 0, 19704 }, /* MVMEL */ -{ CPUFUNC(op_4cf9_4), 0, 19705 }, /* MVMEL */ -{ CPUFUNC(op_4cfa_4), 0, 19706 }, /* MVMEL */ -{ CPUFUNC(op_4cfb_4), 0, 19707 }, /* MVMEL */ -{ CPUFUNC(op_4e40_4), 0, 20032 }, /* TRAP */ -{ CPUFUNC(op_4e50_4), 0, 20048 }, /* LINK */ -{ CPUFUNC(op_4e58_4), 0, 20056 }, /* UNLK */ -{ CPUFUNC(op_4e60_4), 0, 20064 }, /* MVR2USP */ -{ CPUFUNC(op_4e68_4), 0, 20072 }, /* MVUSP2R */ -{ CPUFUNC(op_4e70_4), 0, 20080 }, /* RESET */ -{ CPUFUNC(op_4e71_4), 0, 20081 }, /* NOP */ -{ CPUFUNC(op_4e72_4), 0, 20082 }, /* STOP */ -{ CPUFUNC(op_4e73_4), 0, 20083 }, /* RTE */ -{ CPUFUNC(op_4e74_4), 0, 20084 }, /* RTD */ -{ CPUFUNC(op_4e75_4), 0, 20085 }, /* RTS */ -{ CPUFUNC(op_4e76_4), 0, 20086 }, /* TRAPV */ -{ CPUFUNC(op_4e77_4), 0, 20087 }, /* RTR */ -{ CPUFUNC(op_4e90_4), 0, 20112 }, /* JSR */ -{ CPUFUNC(op_4ea8_4), 0, 20136 }, /* JSR */ -{ CPUFUNC(op_4eb0_4), 0, 20144 }, /* JSR */ -{ CPUFUNC(op_4eb8_4), 0, 20152 }, /* JSR */ -{ CPUFUNC(op_4eb9_4), 0, 20153 }, /* JSR */ -{ CPUFUNC(op_4eba_4), 0, 20154 }, /* JSR */ -{ CPUFUNC(op_4ebb_4), 0, 20155 }, /* JSR */ -{ CPUFUNC(op_4ed0_4), 0, 20176 }, /* JMP */ -{ CPUFUNC(op_4ee8_4), 0, 20200 }, /* JMP */ -{ CPUFUNC(op_4ef0_4), 0, 20208 }, /* JMP */ -{ CPUFUNC(op_4ef8_4), 0, 20216 }, /* JMP */ -{ CPUFUNC(op_4ef9_4), 0, 20217 }, /* JMP */ -{ CPUFUNC(op_4efa_4), 0, 20218 }, /* JMP */ -{ CPUFUNC(op_4efb_4), 0, 20219 }, /* JMP */ -{ CPUFUNC(op_5000_4), 0, 20480 }, /* ADD */ -{ CPUFUNC(op_5010_4), 0, 20496 }, /* ADD */ -{ CPUFUNC(op_5018_4), 0, 20504 }, /* ADD */ -{ CPUFUNC(op_5020_4), 0, 20512 }, /* ADD */ -{ CPUFUNC(op_5028_4), 0, 20520 }, /* ADD */ -{ CPUFUNC(op_5030_4), 0, 20528 }, /* ADD */ -{ CPUFUNC(op_5038_4), 0, 20536 }, /* ADD */ -{ CPUFUNC(op_5039_4), 0, 20537 }, /* ADD */ -{ CPUFUNC(op_5040_4), 0, 20544 }, /* ADD */ -{ CPUFUNC(op_5048_4), 0, 20552 }, /* ADDA */ -{ CPUFUNC(op_5050_4), 0, 20560 }, /* ADD */ -{ CPUFUNC(op_5058_4), 0, 20568 }, /* ADD */ -{ CPUFUNC(op_5060_4), 0, 20576 }, /* ADD */ -{ CPUFUNC(op_5068_4), 0, 20584 }, /* ADD */ -{ CPUFUNC(op_5070_4), 0, 20592 }, /* ADD */ -{ CPUFUNC(op_5078_4), 0, 20600 }, /* ADD */ -{ CPUFUNC(op_5079_4), 0, 20601 }, /* ADD */ -{ CPUFUNC(op_5080_4), 0, 20608 }, /* ADD */ -{ CPUFUNC(op_5088_4), 0, 20616 }, /* ADDA */ -{ CPUFUNC(op_5090_4), 0, 20624 }, /* ADD */ -{ CPUFUNC(op_5098_4), 0, 20632 }, /* ADD */ -{ CPUFUNC(op_50a0_4), 0, 20640 }, /* ADD */ -{ CPUFUNC(op_50a8_4), 0, 20648 }, /* ADD */ -{ CPUFUNC(op_50b0_4), 0, 20656 }, /* ADD */ -{ CPUFUNC(op_50b8_4), 0, 20664 }, /* ADD */ -{ CPUFUNC(op_50b9_4), 0, 20665 }, /* ADD */ -{ CPUFUNC(op_50c0_4), 0, 20672 }, /* Scc */ -{ CPUFUNC(op_50c8_4), 0, 20680 }, /* DBcc */ -{ CPUFUNC(op_50d0_4), 0, 20688 }, /* Scc */ -{ CPUFUNC(op_50d8_4), 0, 20696 }, /* Scc */ -{ CPUFUNC(op_50e0_4), 0, 20704 }, /* Scc */ -{ CPUFUNC(op_50e8_4), 0, 20712 }, /* Scc */ -{ CPUFUNC(op_50f0_4), 0, 20720 }, /* Scc */ -{ CPUFUNC(op_50f8_4), 0, 20728 }, /* Scc */ -{ CPUFUNC(op_50f9_4), 0, 20729 }, /* Scc */ -{ CPUFUNC(op_5100_4), 0, 20736 }, /* SUB */ -{ CPUFUNC(op_5110_4), 0, 20752 }, /* SUB */ -{ CPUFUNC(op_5118_4), 0, 20760 }, /* SUB */ -{ CPUFUNC(op_5120_4), 0, 20768 }, /* SUB */ -{ CPUFUNC(op_5128_4), 0, 20776 }, /* SUB */ -{ CPUFUNC(op_5130_4), 0, 20784 }, /* SUB */ -{ CPUFUNC(op_5138_4), 0, 20792 }, /* SUB */ -{ CPUFUNC(op_5139_4), 0, 20793 }, /* SUB */ -{ CPUFUNC(op_5140_4), 0, 20800 }, /* SUB */ -{ CPUFUNC(op_5148_4), 0, 20808 }, /* SUBA */ -{ CPUFUNC(op_5150_4), 0, 20816 }, /* SUB */ -{ CPUFUNC(op_5158_4), 0, 20824 }, /* SUB */ -{ CPUFUNC(op_5160_4), 0, 20832 }, /* SUB */ -{ CPUFUNC(op_5168_4), 0, 20840 }, /* SUB */ -{ CPUFUNC(op_5170_4), 0, 20848 }, /* SUB */ -{ CPUFUNC(op_5178_4), 0, 20856 }, /* SUB */ -{ CPUFUNC(op_5179_4), 0, 20857 }, /* SUB */ -{ CPUFUNC(op_5180_4), 0, 20864 }, /* SUB */ -{ CPUFUNC(op_5188_4), 0, 20872 }, /* SUBA */ -{ CPUFUNC(op_5190_4), 0, 20880 }, /* SUB */ -{ CPUFUNC(op_5198_4), 0, 20888 }, /* SUB */ -{ CPUFUNC(op_51a0_4), 0, 20896 }, /* SUB */ -{ CPUFUNC(op_51a8_4), 0, 20904 }, /* SUB */ -{ CPUFUNC(op_51b0_4), 0, 20912 }, /* SUB */ -{ CPUFUNC(op_51b8_4), 0, 20920 }, /* SUB */ -{ CPUFUNC(op_51b9_4), 0, 20921 }, /* SUB */ -{ CPUFUNC(op_51c0_4), 0, 20928 }, /* Scc */ -{ CPUFUNC(op_51c8_4), 0, 20936 }, /* DBcc */ -{ CPUFUNC(op_51d0_4), 0, 20944 }, /* Scc */ -{ CPUFUNC(op_51d8_4), 0, 20952 }, /* Scc */ -{ CPUFUNC(op_51e0_4), 0, 20960 }, /* Scc */ -{ CPUFUNC(op_51e8_4), 0, 20968 }, /* Scc */ -{ CPUFUNC(op_51f0_4), 0, 20976 }, /* Scc */ -{ CPUFUNC(op_51f8_4), 0, 20984 }, /* Scc */ -{ CPUFUNC(op_51f9_4), 0, 20985 }, /* Scc */ -{ CPUFUNC(op_52c0_4), 0, 21184 }, /* Scc */ -{ CPUFUNC(op_52c8_4), 0, 21192 }, /* DBcc */ -{ CPUFUNC(op_52d0_4), 0, 21200 }, /* Scc */ -{ CPUFUNC(op_52d8_4), 0, 21208 }, /* Scc */ -{ CPUFUNC(op_52e0_4), 0, 21216 }, /* Scc */ -{ CPUFUNC(op_52e8_4), 0, 21224 }, /* Scc */ -{ CPUFUNC(op_52f0_4), 0, 21232 }, /* Scc */ -{ CPUFUNC(op_52f8_4), 0, 21240 }, /* Scc */ -{ CPUFUNC(op_52f9_4), 0, 21241 }, /* Scc */ -{ CPUFUNC(op_53c0_4), 0, 21440 }, /* Scc */ -{ CPUFUNC(op_53c8_4), 0, 21448 }, /* DBcc */ -{ CPUFUNC(op_53d0_4), 0, 21456 }, /* Scc */ -{ CPUFUNC(op_53d8_4), 0, 21464 }, /* Scc */ -{ CPUFUNC(op_53e0_4), 0, 21472 }, /* Scc */ -{ CPUFUNC(op_53e8_4), 0, 21480 }, /* Scc */ -{ CPUFUNC(op_53f0_4), 0, 21488 }, /* Scc */ -{ CPUFUNC(op_53f8_4), 0, 21496 }, /* Scc */ -{ CPUFUNC(op_53f9_4), 0, 21497 }, /* Scc */ -{ CPUFUNC(op_54c0_4), 0, 21696 }, /* Scc */ -{ CPUFUNC(op_54c8_4), 0, 21704 }, /* DBcc */ -{ CPUFUNC(op_54d0_4), 0, 21712 }, /* Scc */ -{ CPUFUNC(op_54d8_4), 0, 21720 }, /* Scc */ -{ CPUFUNC(op_54e0_4), 0, 21728 }, /* Scc */ -{ CPUFUNC(op_54e8_4), 0, 21736 }, /* Scc */ -{ CPUFUNC(op_54f0_4), 0, 21744 }, /* Scc */ -{ CPUFUNC(op_54f8_4), 0, 21752 }, /* Scc */ -{ CPUFUNC(op_54f9_4), 0, 21753 }, /* Scc */ -{ CPUFUNC(op_55c0_4), 0, 21952 }, /* Scc */ -{ CPUFUNC(op_55c8_4), 0, 21960 }, /* DBcc */ -{ CPUFUNC(op_55d0_4), 0, 21968 }, /* Scc */ -{ CPUFUNC(op_55d8_4), 0, 21976 }, /* Scc */ -{ CPUFUNC(op_55e0_4), 0, 21984 }, /* Scc */ -{ CPUFUNC(op_55e8_4), 0, 21992 }, /* Scc */ -{ CPUFUNC(op_55f0_4), 0, 22000 }, /* Scc */ -{ CPUFUNC(op_55f8_4), 0, 22008 }, /* Scc */ -{ CPUFUNC(op_55f9_4), 0, 22009 }, /* Scc */ -{ CPUFUNC(op_56c0_4), 0, 22208 }, /* Scc */ -{ CPUFUNC(op_56c8_4), 0, 22216 }, /* DBcc */ -{ CPUFUNC(op_56d0_4), 0, 22224 }, /* Scc */ -{ CPUFUNC(op_56d8_4), 0, 22232 }, /* Scc */ -{ CPUFUNC(op_56e0_4), 0, 22240 }, /* Scc */ -{ CPUFUNC(op_56e8_4), 0, 22248 }, /* Scc */ -{ CPUFUNC(op_56f0_4), 0, 22256 }, /* Scc */ -{ CPUFUNC(op_56f8_4), 0, 22264 }, /* Scc */ -{ CPUFUNC(op_56f9_4), 0, 22265 }, /* Scc */ -{ CPUFUNC(op_57c0_4), 0, 22464 }, /* Scc */ -{ CPUFUNC(op_57c8_4), 0, 22472 }, /* DBcc */ -{ CPUFUNC(op_57d0_4), 0, 22480 }, /* Scc */ -{ CPUFUNC(op_57d8_4), 0, 22488 }, /* Scc */ -{ CPUFUNC(op_57e0_4), 0, 22496 }, /* Scc */ -{ CPUFUNC(op_57e8_4), 0, 22504 }, /* Scc */ -{ CPUFUNC(op_57f0_4), 0, 22512 }, /* Scc */ -{ CPUFUNC(op_57f8_4), 0, 22520 }, /* Scc */ -{ CPUFUNC(op_57f9_4), 0, 22521 }, /* Scc */ -{ CPUFUNC(op_58c0_4), 0, 22720 }, /* Scc */ -{ CPUFUNC(op_58c8_4), 0, 22728 }, /* DBcc */ -{ CPUFUNC(op_58d0_4), 0, 22736 }, /* Scc */ -{ CPUFUNC(op_58d8_4), 0, 22744 }, /* Scc */ -{ CPUFUNC(op_58e0_4), 0, 22752 }, /* Scc */ -{ CPUFUNC(op_58e8_4), 0, 22760 }, /* Scc */ -{ CPUFUNC(op_58f0_4), 0, 22768 }, /* Scc */ -{ CPUFUNC(op_58f8_4), 0, 22776 }, /* Scc */ -{ CPUFUNC(op_58f9_4), 0, 22777 }, /* Scc */ -{ CPUFUNC(op_59c0_4), 0, 22976 }, /* Scc */ -{ CPUFUNC(op_59c8_4), 0, 22984 }, /* DBcc */ -{ CPUFUNC(op_59d0_4), 0, 22992 }, /* Scc */ -{ CPUFUNC(op_59d8_4), 0, 23000 }, /* Scc */ -{ CPUFUNC(op_59e0_4), 0, 23008 }, /* Scc */ -{ CPUFUNC(op_59e8_4), 0, 23016 }, /* Scc */ -{ CPUFUNC(op_59f0_4), 0, 23024 }, /* Scc */ -{ CPUFUNC(op_59f8_4), 0, 23032 }, /* Scc */ -{ CPUFUNC(op_59f9_4), 0, 23033 }, /* Scc */ -{ CPUFUNC(op_5ac0_4), 0, 23232 }, /* Scc */ -{ CPUFUNC(op_5ac8_4), 0, 23240 }, /* DBcc */ -{ CPUFUNC(op_5ad0_4), 0, 23248 }, /* Scc */ -{ CPUFUNC(op_5ad8_4), 0, 23256 }, /* Scc */ -{ CPUFUNC(op_5ae0_4), 0, 23264 }, /* Scc */ -{ CPUFUNC(op_5ae8_4), 0, 23272 }, /* Scc */ -{ CPUFUNC(op_5af0_4), 0, 23280 }, /* Scc */ -{ CPUFUNC(op_5af8_4), 0, 23288 }, /* Scc */ -{ CPUFUNC(op_5af9_4), 0, 23289 }, /* Scc */ -{ CPUFUNC(op_5bc0_4), 0, 23488 }, /* Scc */ -{ CPUFUNC(op_5bc8_4), 0, 23496 }, /* DBcc */ -{ CPUFUNC(op_5bd0_4), 0, 23504 }, /* Scc */ -{ CPUFUNC(op_5bd8_4), 0, 23512 }, /* Scc */ -{ CPUFUNC(op_5be0_4), 0, 23520 }, /* Scc */ -{ CPUFUNC(op_5be8_4), 0, 23528 }, /* Scc */ -{ CPUFUNC(op_5bf0_4), 0, 23536 }, /* Scc */ -{ CPUFUNC(op_5bf8_4), 0, 23544 }, /* Scc */ -{ CPUFUNC(op_5bf9_4), 0, 23545 }, /* Scc */ -{ CPUFUNC(op_5cc0_4), 0, 23744 }, /* Scc */ -{ CPUFUNC(op_5cc8_4), 0, 23752 }, /* DBcc */ -{ CPUFUNC(op_5cd0_4), 0, 23760 }, /* Scc */ -{ CPUFUNC(op_5cd8_4), 0, 23768 }, /* Scc */ -{ CPUFUNC(op_5ce0_4), 0, 23776 }, /* Scc */ -{ CPUFUNC(op_5ce8_4), 0, 23784 }, /* Scc */ -{ CPUFUNC(op_5cf0_4), 0, 23792 }, /* Scc */ -{ CPUFUNC(op_5cf8_4), 0, 23800 }, /* Scc */ -{ CPUFUNC(op_5cf9_4), 0, 23801 }, /* Scc */ -{ CPUFUNC(op_5dc0_4), 0, 24000 }, /* Scc */ -{ CPUFUNC(op_5dc8_4), 0, 24008 }, /* DBcc */ -{ CPUFUNC(op_5dd0_4), 0, 24016 }, /* Scc */ -{ CPUFUNC(op_5dd8_4), 0, 24024 }, /* Scc */ -{ CPUFUNC(op_5de0_4), 0, 24032 }, /* Scc */ -{ CPUFUNC(op_5de8_4), 0, 24040 }, /* Scc */ -{ CPUFUNC(op_5df0_4), 0, 24048 }, /* Scc */ -{ CPUFUNC(op_5df8_4), 0, 24056 }, /* Scc */ -{ CPUFUNC(op_5df9_4), 0, 24057 }, /* Scc */ -{ CPUFUNC(op_5ec0_4), 0, 24256 }, /* Scc */ -{ CPUFUNC(op_5ec8_4), 0, 24264 }, /* DBcc */ -{ CPUFUNC(op_5ed0_4), 0, 24272 }, /* Scc */ -{ CPUFUNC(op_5ed8_4), 0, 24280 }, /* Scc */ -{ CPUFUNC(op_5ee0_4), 0, 24288 }, /* Scc */ -{ CPUFUNC(op_5ee8_4), 0, 24296 }, /* Scc */ -{ CPUFUNC(op_5ef0_4), 0, 24304 }, /* Scc */ -{ CPUFUNC(op_5ef8_4), 0, 24312 }, /* Scc */ -{ CPUFUNC(op_5ef9_4), 0, 24313 }, /* Scc */ -{ CPUFUNC(op_5fc0_4), 0, 24512 }, /* Scc */ -{ CPUFUNC(op_5fc8_4), 0, 24520 }, /* DBcc */ -{ CPUFUNC(op_5fd0_4), 0, 24528 }, /* Scc */ -{ CPUFUNC(op_5fd8_4), 0, 24536 }, /* Scc */ -{ CPUFUNC(op_5fe0_4), 0, 24544 }, /* Scc */ -{ CPUFUNC(op_5fe8_4), 0, 24552 }, /* Scc */ -{ CPUFUNC(op_5ff0_4), 0, 24560 }, /* Scc */ -{ CPUFUNC(op_5ff8_4), 0, 24568 }, /* Scc */ -{ CPUFUNC(op_5ff9_4), 0, 24569 }, /* Scc */ -{ CPUFUNC(op_6000_4), 0, 24576 }, /* Bcc */ -{ CPUFUNC(op_6001_4), 0, 24577 }, /* Bcc */ -{ CPUFUNC(op_60ff_4), 0, 24831 }, /* Bcc */ -{ CPUFUNC(op_6100_4), 0, 24832 }, /* BSR */ -{ CPUFUNC(op_6101_4), 0, 24833 }, /* BSR */ -{ CPUFUNC(op_61ff_4), 0, 25087 }, /* BSR */ -{ CPUFUNC(op_6200_4), 0, 25088 }, /* Bcc */ -{ CPUFUNC(op_6201_4), 0, 25089 }, /* Bcc */ -{ CPUFUNC(op_62ff_4), 0, 25343 }, /* Bcc */ -{ CPUFUNC(op_6300_4), 0, 25344 }, /* Bcc */ -{ CPUFUNC(op_6301_4), 0, 25345 }, /* Bcc */ -{ CPUFUNC(op_63ff_4), 0, 25599 }, /* Bcc */ -{ CPUFUNC(op_6400_4), 0, 25600 }, /* Bcc */ -{ CPUFUNC(op_6401_4), 0, 25601 }, /* Bcc */ -{ CPUFUNC(op_64ff_4), 0, 25855 }, /* Bcc */ -{ CPUFUNC(op_6500_4), 0, 25856 }, /* Bcc */ -{ CPUFUNC(op_6501_4), 0, 25857 }, /* Bcc */ -{ CPUFUNC(op_65ff_4), 0, 26111 }, /* Bcc */ -{ CPUFUNC(op_6600_4), 0, 26112 }, /* Bcc */ -{ CPUFUNC(op_6601_4), 0, 26113 }, /* Bcc */ -{ CPUFUNC(op_66ff_4), 0, 26367 }, /* Bcc */ -{ CPUFUNC(op_6700_4), 0, 26368 }, /* Bcc */ -{ CPUFUNC(op_6701_4), 0, 26369 }, /* Bcc */ -{ CPUFUNC(op_67ff_4), 0, 26623 }, /* Bcc */ -{ CPUFUNC(op_6800_4), 0, 26624 }, /* Bcc */ -{ CPUFUNC(op_6801_4), 0, 26625 }, /* Bcc */ -{ CPUFUNC(op_68ff_4), 0, 26879 }, /* Bcc */ -{ CPUFUNC(op_6900_4), 0, 26880 }, /* Bcc */ -{ CPUFUNC(op_6901_4), 0, 26881 }, /* Bcc */ -{ CPUFUNC(op_69ff_4), 0, 27135 }, /* Bcc */ -{ CPUFUNC(op_6a00_4), 0, 27136 }, /* Bcc */ -{ CPUFUNC(op_6a01_4), 0, 27137 }, /* Bcc */ -{ CPUFUNC(op_6aff_4), 0, 27391 }, /* Bcc */ -{ CPUFUNC(op_6b00_4), 0, 27392 }, /* Bcc */ -{ CPUFUNC(op_6b01_4), 0, 27393 }, /* Bcc */ -{ CPUFUNC(op_6bff_4), 0, 27647 }, /* Bcc */ -{ CPUFUNC(op_6c00_4), 0, 27648 }, /* Bcc */ -{ CPUFUNC(op_6c01_4), 0, 27649 }, /* Bcc */ -{ CPUFUNC(op_6cff_4), 0, 27903 }, /* Bcc */ -{ CPUFUNC(op_6d00_4), 0, 27904 }, /* Bcc */ -{ CPUFUNC(op_6d01_4), 0, 27905 }, /* Bcc */ -{ CPUFUNC(op_6dff_4), 0, 28159 }, /* Bcc */ -{ CPUFUNC(op_6e00_4), 0, 28160 }, /* Bcc */ -{ CPUFUNC(op_6e01_4), 0, 28161 }, /* Bcc */ -{ CPUFUNC(op_6eff_4), 0, 28415 }, /* Bcc */ -{ CPUFUNC(op_6f00_4), 0, 28416 }, /* Bcc */ -{ CPUFUNC(op_6f01_4), 0, 28417 }, /* Bcc */ -{ CPUFUNC(op_6fff_4), 0, 28671 }, /* Bcc */ -{ CPUFUNC(op_7000_4), 0, 28672 }, /* MOVE */ -{ CPUFUNC(op_8000_4), 0, 32768 }, /* OR */ -{ CPUFUNC(op_8010_4), 0, 32784 }, /* OR */ -{ CPUFUNC(op_8018_4), 0, 32792 }, /* OR */ -{ CPUFUNC(op_8020_4), 0, 32800 }, /* OR */ -{ CPUFUNC(op_8028_4), 0, 32808 }, /* OR */ -{ CPUFUNC(op_8030_4), 0, 32816 }, /* OR */ -{ CPUFUNC(op_8038_4), 0, 32824 }, /* OR */ -{ CPUFUNC(op_8039_4), 0, 32825 }, /* OR */ -{ CPUFUNC(op_803a_4), 0, 32826 }, /* OR */ -{ CPUFUNC(op_803b_4), 0, 32827 }, /* OR */ -{ CPUFUNC(op_803c_4), 0, 32828 }, /* OR */ -{ CPUFUNC(op_8040_4), 0, 32832 }, /* OR */ -{ CPUFUNC(op_8050_4), 0, 32848 }, /* OR */ -{ CPUFUNC(op_8058_4), 0, 32856 }, /* OR */ -{ CPUFUNC(op_8060_4), 0, 32864 }, /* OR */ -{ CPUFUNC(op_8068_4), 0, 32872 }, /* OR */ -{ CPUFUNC(op_8070_4), 0, 32880 }, /* OR */ -{ CPUFUNC(op_8078_4), 0, 32888 }, /* OR */ -{ CPUFUNC(op_8079_4), 0, 32889 }, /* OR */ -{ CPUFUNC(op_807a_4), 0, 32890 }, /* OR */ -{ CPUFUNC(op_807b_4), 0, 32891 }, /* OR */ -{ CPUFUNC(op_807c_4), 0, 32892 }, /* OR */ -{ CPUFUNC(op_8080_4), 0, 32896 }, /* OR */ -{ CPUFUNC(op_8090_4), 0, 32912 }, /* OR */ -{ CPUFUNC(op_8098_4), 0, 32920 }, /* OR */ -{ CPUFUNC(op_80a0_4), 0, 32928 }, /* OR */ -{ CPUFUNC(op_80a8_4), 0, 32936 }, /* OR */ -{ CPUFUNC(op_80b0_4), 0, 32944 }, /* OR */ -{ CPUFUNC(op_80b8_4), 0, 32952 }, /* OR */ -{ CPUFUNC(op_80b9_4), 0, 32953 }, /* OR */ -{ CPUFUNC(op_80ba_4), 0, 32954 }, /* OR */ -{ CPUFUNC(op_80bb_4), 0, 32955 }, /* OR */ -{ CPUFUNC(op_80bc_4), 0, 32956 }, /* OR */ -{ CPUFUNC(op_80c0_4), 0, 32960 }, /* DIVU */ -{ CPUFUNC(op_80d0_4), 0, 32976 }, /* DIVU */ -{ CPUFUNC(op_80d8_4), 0, 32984 }, /* DIVU */ -{ CPUFUNC(op_80e0_4), 0, 32992 }, /* DIVU */ -{ CPUFUNC(op_80e8_4), 0, 33000 }, /* DIVU */ -{ CPUFUNC(op_80f0_4), 0, 33008 }, /* DIVU */ -{ CPUFUNC(op_80f8_4), 0, 33016 }, /* DIVU */ -{ CPUFUNC(op_80f9_4), 0, 33017 }, /* DIVU */ -{ CPUFUNC(op_80fa_4), 0, 33018 }, /* DIVU */ -{ CPUFUNC(op_80fb_4), 0, 33019 }, /* DIVU */ -{ CPUFUNC(op_80fc_4), 0, 33020 }, /* DIVU */ -{ CPUFUNC(op_8100_4), 0, 33024 }, /* SBCD */ -{ CPUFUNC(op_8108_4), 0, 33032 }, /* SBCD */ -{ CPUFUNC(op_8110_4), 0, 33040 }, /* OR */ -{ CPUFUNC(op_8118_4), 0, 33048 }, /* OR */ -{ CPUFUNC(op_8120_4), 0, 33056 }, /* OR */ -{ CPUFUNC(op_8128_4), 0, 33064 }, /* OR */ -{ CPUFUNC(op_8130_4), 0, 33072 }, /* OR */ -{ CPUFUNC(op_8138_4), 0, 33080 }, /* OR */ -{ CPUFUNC(op_8139_4), 0, 33081 }, /* OR */ -{ CPUFUNC(op_8150_4), 0, 33104 }, /* OR */ -{ CPUFUNC(op_8158_4), 0, 33112 }, /* OR */ -{ CPUFUNC(op_8160_4), 0, 33120 }, /* OR */ -{ CPUFUNC(op_8168_4), 0, 33128 }, /* OR */ -{ CPUFUNC(op_8170_4), 0, 33136 }, /* OR */ -{ CPUFUNC(op_8178_4), 0, 33144 }, /* OR */ -{ CPUFUNC(op_8179_4), 0, 33145 }, /* OR */ -{ CPUFUNC(op_8190_4), 0, 33168 }, /* OR */ -{ CPUFUNC(op_8198_4), 0, 33176 }, /* OR */ -{ CPUFUNC(op_81a0_4), 0, 33184 }, /* OR */ -{ CPUFUNC(op_81a8_4), 0, 33192 }, /* OR */ -{ CPUFUNC(op_81b0_4), 0, 33200 }, /* OR */ -{ CPUFUNC(op_81b8_4), 0, 33208 }, /* OR */ -{ CPUFUNC(op_81b9_4), 0, 33209 }, /* OR */ -{ CPUFUNC(op_81c0_4), 0, 33216 }, /* DIVS */ -{ CPUFUNC(op_81d0_4), 0, 33232 }, /* DIVS */ -{ CPUFUNC(op_81d8_4), 0, 33240 }, /* DIVS */ -{ CPUFUNC(op_81e0_4), 0, 33248 }, /* DIVS */ -{ CPUFUNC(op_81e8_4), 0, 33256 }, /* DIVS */ -{ CPUFUNC(op_81f0_4), 0, 33264 }, /* DIVS */ -{ CPUFUNC(op_81f8_4), 0, 33272 }, /* DIVS */ -{ CPUFUNC(op_81f9_4), 0, 33273 }, /* DIVS */ -{ CPUFUNC(op_81fa_4), 0, 33274 }, /* DIVS */ -{ CPUFUNC(op_81fb_4), 0, 33275 }, /* DIVS */ -{ CPUFUNC(op_81fc_4), 0, 33276 }, /* DIVS */ -{ CPUFUNC(op_9000_4), 0, 36864 }, /* SUB */ -{ CPUFUNC(op_9010_4), 0, 36880 }, /* SUB */ -{ CPUFUNC(op_9018_4), 0, 36888 }, /* SUB */ -{ CPUFUNC(op_9020_4), 0, 36896 }, /* SUB */ -{ CPUFUNC(op_9028_4), 0, 36904 }, /* SUB */ -{ CPUFUNC(op_9030_4), 0, 36912 }, /* SUB */ -{ CPUFUNC(op_9038_4), 0, 36920 }, /* SUB */ -{ CPUFUNC(op_9039_4), 0, 36921 }, /* SUB */ -{ CPUFUNC(op_903a_4), 0, 36922 }, /* SUB */ -{ CPUFUNC(op_903b_4), 0, 36923 }, /* SUB */ -{ CPUFUNC(op_903c_4), 0, 36924 }, /* SUB */ -{ CPUFUNC(op_9040_4), 0, 36928 }, /* SUB */ -{ CPUFUNC(op_9048_4), 0, 36936 }, /* SUB */ -{ CPUFUNC(op_9050_4), 0, 36944 }, /* SUB */ -{ CPUFUNC(op_9058_4), 0, 36952 }, /* SUB */ -{ CPUFUNC(op_9060_4), 0, 36960 }, /* SUB */ -{ CPUFUNC(op_9068_4), 0, 36968 }, /* SUB */ -{ CPUFUNC(op_9070_4), 0, 36976 }, /* SUB */ -{ CPUFUNC(op_9078_4), 0, 36984 }, /* SUB */ -{ CPUFUNC(op_9079_4), 0, 36985 }, /* SUB */ -{ CPUFUNC(op_907a_4), 0, 36986 }, /* SUB */ -{ CPUFUNC(op_907b_4), 0, 36987 }, /* SUB */ -{ CPUFUNC(op_907c_4), 0, 36988 }, /* SUB */ -{ CPUFUNC(op_9080_4), 0, 36992 }, /* SUB */ -{ CPUFUNC(op_9088_4), 0, 37000 }, /* SUB */ -{ CPUFUNC(op_9090_4), 0, 37008 }, /* SUB */ -{ CPUFUNC(op_9098_4), 0, 37016 }, /* SUB */ -{ CPUFUNC(op_90a0_4), 0, 37024 }, /* SUB */ -{ CPUFUNC(op_90a8_4), 0, 37032 }, /* SUB */ -{ CPUFUNC(op_90b0_4), 0, 37040 }, /* SUB */ -{ CPUFUNC(op_90b8_4), 0, 37048 }, /* SUB */ -{ CPUFUNC(op_90b9_4), 0, 37049 }, /* SUB */ -{ CPUFUNC(op_90ba_4), 0, 37050 }, /* SUB */ -{ CPUFUNC(op_90bb_4), 0, 37051 }, /* SUB */ -{ CPUFUNC(op_90bc_4), 0, 37052 }, /* SUB */ -{ CPUFUNC(op_90c0_4), 0, 37056 }, /* SUBA */ -{ CPUFUNC(op_90c8_4), 0, 37064 }, /* SUBA */ -{ CPUFUNC(op_90d0_4), 0, 37072 }, /* SUBA */ -{ CPUFUNC(op_90d8_4), 0, 37080 }, /* SUBA */ -{ CPUFUNC(op_90e0_4), 0, 37088 }, /* SUBA */ -{ CPUFUNC(op_90e8_4), 0, 37096 }, /* SUBA */ -{ CPUFUNC(op_90f0_4), 0, 37104 }, /* SUBA */ -{ CPUFUNC(op_90f8_4), 0, 37112 }, /* SUBA */ -{ CPUFUNC(op_90f9_4), 0, 37113 }, /* SUBA */ -{ CPUFUNC(op_90fa_4), 0, 37114 }, /* SUBA */ -{ CPUFUNC(op_90fb_4), 0, 37115 }, /* SUBA */ -{ CPUFUNC(op_90fc_4), 0, 37116 }, /* SUBA */ -{ CPUFUNC(op_9100_4), 0, 37120 }, /* SUBX */ -{ CPUFUNC(op_9108_4), 0, 37128 }, /* SUBX */ -{ CPUFUNC(op_9110_4), 0, 37136 }, /* SUB */ -{ CPUFUNC(op_9118_4), 0, 37144 }, /* SUB */ -{ CPUFUNC(op_9120_4), 0, 37152 }, /* SUB */ -{ CPUFUNC(op_9128_4), 0, 37160 }, /* SUB */ -{ CPUFUNC(op_9130_4), 0, 37168 }, /* SUB */ -{ CPUFUNC(op_9138_4), 0, 37176 }, /* SUB */ -{ CPUFUNC(op_9139_4), 0, 37177 }, /* SUB */ -{ CPUFUNC(op_9140_4), 0, 37184 }, /* SUBX */ -{ CPUFUNC(op_9148_4), 0, 37192 }, /* SUBX */ -{ CPUFUNC(op_9150_4), 0, 37200 }, /* SUB */ -{ CPUFUNC(op_9158_4), 0, 37208 }, /* SUB */ -{ CPUFUNC(op_9160_4), 0, 37216 }, /* SUB */ -{ CPUFUNC(op_9168_4), 0, 37224 }, /* SUB */ -{ CPUFUNC(op_9170_4), 0, 37232 }, /* SUB */ -{ CPUFUNC(op_9178_4), 0, 37240 }, /* SUB */ -{ CPUFUNC(op_9179_4), 0, 37241 }, /* SUB */ -{ CPUFUNC(op_9180_4), 0, 37248 }, /* SUBX */ -{ CPUFUNC(op_9188_4), 0, 37256 }, /* SUBX */ -{ CPUFUNC(op_9190_4), 0, 37264 }, /* SUB */ -{ CPUFUNC(op_9198_4), 0, 37272 }, /* SUB */ -{ CPUFUNC(op_91a0_4), 0, 37280 }, /* SUB */ -{ CPUFUNC(op_91a8_4), 0, 37288 }, /* SUB */ -{ CPUFUNC(op_91b0_4), 0, 37296 }, /* SUB */ -{ CPUFUNC(op_91b8_4), 0, 37304 }, /* SUB */ -{ CPUFUNC(op_91b9_4), 0, 37305 }, /* SUB */ -{ CPUFUNC(op_91c0_4), 0, 37312 }, /* SUBA */ -{ CPUFUNC(op_91c8_4), 0, 37320 }, /* SUBA */ -{ CPUFUNC(op_91d0_4), 0, 37328 }, /* SUBA */ -{ CPUFUNC(op_91d8_4), 0, 37336 }, /* SUBA */ -{ CPUFUNC(op_91e0_4), 0, 37344 }, /* SUBA */ -{ CPUFUNC(op_91e8_4), 0, 37352 }, /* SUBA */ -{ CPUFUNC(op_91f0_4), 0, 37360 }, /* SUBA */ -{ CPUFUNC(op_91f8_4), 0, 37368 }, /* SUBA */ -{ CPUFUNC(op_91f9_4), 0, 37369 }, /* SUBA */ -{ CPUFUNC(op_91fa_4), 0, 37370 }, /* SUBA */ -{ CPUFUNC(op_91fb_4), 0, 37371 }, /* SUBA */ -{ CPUFUNC(op_91fc_4), 0, 37372 }, /* SUBA */ -{ CPUFUNC(op_b000_4), 0, 45056 }, /* CMP */ -{ CPUFUNC(op_b010_4), 0, 45072 }, /* CMP */ -{ CPUFUNC(op_b018_4), 0, 45080 }, /* CMP */ -{ CPUFUNC(op_b020_4), 0, 45088 }, /* CMP */ -{ CPUFUNC(op_b028_4), 0, 45096 }, /* CMP */ -{ CPUFUNC(op_b030_4), 0, 45104 }, /* CMP */ -{ CPUFUNC(op_b038_4), 0, 45112 }, /* CMP */ -{ CPUFUNC(op_b039_4), 0, 45113 }, /* CMP */ -{ CPUFUNC(op_b03a_4), 0, 45114 }, /* CMP */ -{ CPUFUNC(op_b03b_4), 0, 45115 }, /* CMP */ -{ CPUFUNC(op_b03c_4), 0, 45116 }, /* CMP */ -{ CPUFUNC(op_b040_4), 0, 45120 }, /* CMP */ -{ CPUFUNC(op_b048_4), 0, 45128 }, /* CMP */ -{ CPUFUNC(op_b050_4), 0, 45136 }, /* CMP */ -{ CPUFUNC(op_b058_4), 0, 45144 }, /* CMP */ -{ CPUFUNC(op_b060_4), 0, 45152 }, /* CMP */ -{ CPUFUNC(op_b068_4), 0, 45160 }, /* CMP */ -{ CPUFUNC(op_b070_4), 0, 45168 }, /* CMP */ -{ CPUFUNC(op_b078_4), 0, 45176 }, /* CMP */ -{ CPUFUNC(op_b079_4), 0, 45177 }, /* CMP */ -{ CPUFUNC(op_b07a_4), 0, 45178 }, /* CMP */ -{ CPUFUNC(op_b07b_4), 0, 45179 }, /* CMP */ -{ CPUFUNC(op_b07c_4), 0, 45180 }, /* CMP */ -{ CPUFUNC(op_b080_4), 0, 45184 }, /* CMP */ -{ CPUFUNC(op_b088_4), 0, 45192 }, /* CMP */ -{ CPUFUNC(op_b090_4), 0, 45200 }, /* CMP */ -{ CPUFUNC(op_b098_4), 0, 45208 }, /* CMP */ -{ CPUFUNC(op_b0a0_4), 0, 45216 }, /* CMP */ -{ CPUFUNC(op_b0a8_4), 0, 45224 }, /* CMP */ -{ CPUFUNC(op_b0b0_4), 0, 45232 }, /* CMP */ -{ CPUFUNC(op_b0b8_4), 0, 45240 }, /* CMP */ -{ CPUFUNC(op_b0b9_4), 0, 45241 }, /* CMP */ -{ CPUFUNC(op_b0ba_4), 0, 45242 }, /* CMP */ -{ CPUFUNC(op_b0bb_4), 0, 45243 }, /* CMP */ -{ CPUFUNC(op_b0bc_4), 0, 45244 }, /* CMP */ -{ CPUFUNC(op_b0c0_4), 0, 45248 }, /* CMPA */ -{ CPUFUNC(op_b0c8_4), 0, 45256 }, /* CMPA */ -{ CPUFUNC(op_b0d0_4), 0, 45264 }, /* CMPA */ -{ CPUFUNC(op_b0d8_4), 0, 45272 }, /* CMPA */ -{ CPUFUNC(op_b0e0_4), 0, 45280 }, /* CMPA */ -{ CPUFUNC(op_b0e8_4), 0, 45288 }, /* CMPA */ -{ CPUFUNC(op_b0f0_4), 0, 45296 }, /* CMPA */ -{ CPUFUNC(op_b0f8_4), 0, 45304 }, /* CMPA */ -{ CPUFUNC(op_b0f9_4), 0, 45305 }, /* CMPA */ -{ CPUFUNC(op_b0fa_4), 0, 45306 }, /* CMPA */ -{ CPUFUNC(op_b0fb_4), 0, 45307 }, /* CMPA */ -{ CPUFUNC(op_b0fc_4), 0, 45308 }, /* CMPA */ -{ CPUFUNC(op_b100_4), 0, 45312 }, /* EOR */ -{ CPUFUNC(op_b108_4), 0, 45320 }, /* CMPM */ -{ CPUFUNC(op_b110_4), 0, 45328 }, /* EOR */ -{ CPUFUNC(op_b118_4), 0, 45336 }, /* EOR */ -{ CPUFUNC(op_b120_4), 0, 45344 }, /* EOR */ -{ CPUFUNC(op_b128_4), 0, 45352 }, /* EOR */ -{ CPUFUNC(op_b130_4), 0, 45360 }, /* EOR */ -{ CPUFUNC(op_b138_4), 0, 45368 }, /* EOR */ -{ CPUFUNC(op_b139_4), 0, 45369 }, /* EOR */ -{ CPUFUNC(op_b140_4), 0, 45376 }, /* EOR */ -{ CPUFUNC(op_b148_4), 0, 45384 }, /* CMPM */ -{ CPUFUNC(op_b150_4), 0, 45392 }, /* EOR */ -{ CPUFUNC(op_b158_4), 0, 45400 }, /* EOR */ -{ CPUFUNC(op_b160_4), 0, 45408 }, /* EOR */ -{ CPUFUNC(op_b168_4), 0, 45416 }, /* EOR */ -{ CPUFUNC(op_b170_4), 0, 45424 }, /* EOR */ -{ CPUFUNC(op_b178_4), 0, 45432 }, /* EOR */ -{ CPUFUNC(op_b179_4), 0, 45433 }, /* EOR */ -{ CPUFUNC(op_b180_4), 0, 45440 }, /* EOR */ -{ CPUFUNC(op_b188_4), 0, 45448 }, /* CMPM */ -{ CPUFUNC(op_b190_4), 0, 45456 }, /* EOR */ -{ CPUFUNC(op_b198_4), 0, 45464 }, /* EOR */ -{ CPUFUNC(op_b1a0_4), 0, 45472 }, /* EOR */ -{ CPUFUNC(op_b1a8_4), 0, 45480 }, /* EOR */ -{ CPUFUNC(op_b1b0_4), 0, 45488 }, /* EOR */ -{ CPUFUNC(op_b1b8_4), 0, 45496 }, /* EOR */ -{ CPUFUNC(op_b1b9_4), 0, 45497 }, /* EOR */ -{ CPUFUNC(op_b1c0_4), 0, 45504 }, /* CMPA */ -{ CPUFUNC(op_b1c8_4), 0, 45512 }, /* CMPA */ -{ CPUFUNC(op_b1d0_4), 0, 45520 }, /* CMPA */ -{ CPUFUNC(op_b1d8_4), 0, 45528 }, /* CMPA */ -{ CPUFUNC(op_b1e0_4), 0, 45536 }, /* CMPA */ -{ CPUFUNC(op_b1e8_4), 0, 45544 }, /* CMPA */ -{ CPUFUNC(op_b1f0_4), 0, 45552 }, /* CMPA */ -{ CPUFUNC(op_b1f8_4), 0, 45560 }, /* CMPA */ -{ CPUFUNC(op_b1f9_4), 0, 45561 }, /* CMPA */ -{ CPUFUNC(op_b1fa_4), 0, 45562 }, /* CMPA */ -{ CPUFUNC(op_b1fb_4), 0, 45563 }, /* CMPA */ -{ CPUFUNC(op_b1fc_4), 0, 45564 }, /* CMPA */ -{ CPUFUNC(op_c000_4), 0, 49152 }, /* AND */ -{ CPUFUNC(op_c010_4), 0, 49168 }, /* AND */ -{ CPUFUNC(op_c018_4), 0, 49176 }, /* AND */ -{ CPUFUNC(op_c020_4), 0, 49184 }, /* AND */ -{ CPUFUNC(op_c028_4), 0, 49192 }, /* AND */ -{ CPUFUNC(op_c030_4), 0, 49200 }, /* AND */ -{ CPUFUNC(op_c038_4), 0, 49208 }, /* AND */ -{ CPUFUNC(op_c039_4), 0, 49209 }, /* AND */ -{ CPUFUNC(op_c03a_4), 0, 49210 }, /* AND */ -{ CPUFUNC(op_c03b_4), 0, 49211 }, /* AND */ -{ CPUFUNC(op_c03c_4), 0, 49212 }, /* AND */ -{ CPUFUNC(op_c040_4), 0, 49216 }, /* AND */ -{ CPUFUNC(op_c050_4), 0, 49232 }, /* AND */ -{ CPUFUNC(op_c058_4), 0, 49240 }, /* AND */ -{ CPUFUNC(op_c060_4), 0, 49248 }, /* AND */ -{ CPUFUNC(op_c068_4), 0, 49256 }, /* AND */ -{ CPUFUNC(op_c070_4), 0, 49264 }, /* AND */ -{ CPUFUNC(op_c078_4), 0, 49272 }, /* AND */ -{ CPUFUNC(op_c079_4), 0, 49273 }, /* AND */ -{ CPUFUNC(op_c07a_4), 0, 49274 }, /* AND */ -{ CPUFUNC(op_c07b_4), 0, 49275 }, /* AND */ -{ CPUFUNC(op_c07c_4), 0, 49276 }, /* AND */ -{ CPUFUNC(op_c080_4), 0, 49280 }, /* AND */ -{ CPUFUNC(op_c090_4), 0, 49296 }, /* AND */ -{ CPUFUNC(op_c098_4), 0, 49304 }, /* AND */ -{ CPUFUNC(op_c0a0_4), 0, 49312 }, /* AND */ -{ CPUFUNC(op_c0a8_4), 0, 49320 }, /* AND */ -{ CPUFUNC(op_c0b0_4), 0, 49328 }, /* AND */ -{ CPUFUNC(op_c0b8_4), 0, 49336 }, /* AND */ -{ CPUFUNC(op_c0b9_4), 0, 49337 }, /* AND */ -{ CPUFUNC(op_c0ba_4), 0, 49338 }, /* AND */ -{ CPUFUNC(op_c0bb_4), 0, 49339 }, /* AND */ -{ CPUFUNC(op_c0bc_4), 0, 49340 }, /* AND */ -{ CPUFUNC(op_c0c0_4), 0, 49344 }, /* MULU */ -{ CPUFUNC(op_c0d0_4), 0, 49360 }, /* MULU */ -{ CPUFUNC(op_c0d8_4), 0, 49368 }, /* MULU */ -{ CPUFUNC(op_c0e0_4), 0, 49376 }, /* MULU */ -{ CPUFUNC(op_c0e8_4), 0, 49384 }, /* MULU */ -{ CPUFUNC(op_c0f0_4), 0, 49392 }, /* MULU */ -{ CPUFUNC(op_c0f8_4), 0, 49400 }, /* MULU */ -{ CPUFUNC(op_c0f9_4), 0, 49401 }, /* MULU */ -{ CPUFUNC(op_c0fa_4), 0, 49402 }, /* MULU */ -{ CPUFUNC(op_c0fb_4), 0, 49403 }, /* MULU */ -{ CPUFUNC(op_c0fc_4), 0, 49404 }, /* MULU */ -{ CPUFUNC(op_c100_4), 0, 49408 }, /* ABCD */ -{ CPUFUNC(op_c108_4), 0, 49416 }, /* ABCD */ -{ CPUFUNC(op_c110_4), 0, 49424 }, /* AND */ -{ CPUFUNC(op_c118_4), 0, 49432 }, /* AND */ -{ CPUFUNC(op_c120_4), 0, 49440 }, /* AND */ -{ CPUFUNC(op_c128_4), 0, 49448 }, /* AND */ -{ CPUFUNC(op_c130_4), 0, 49456 }, /* AND */ -{ CPUFUNC(op_c138_4), 0, 49464 }, /* AND */ -{ CPUFUNC(op_c139_4), 0, 49465 }, /* AND */ -{ CPUFUNC(op_c140_4), 0, 49472 }, /* EXG */ -{ CPUFUNC(op_c148_4), 0, 49480 }, /* EXG */ -{ CPUFUNC(op_c150_4), 0, 49488 }, /* AND */ -{ CPUFUNC(op_c158_4), 0, 49496 }, /* AND */ -{ CPUFUNC(op_c160_4), 0, 49504 }, /* AND */ -{ CPUFUNC(op_c168_4), 0, 49512 }, /* AND */ -{ CPUFUNC(op_c170_4), 0, 49520 }, /* AND */ -{ CPUFUNC(op_c178_4), 0, 49528 }, /* AND */ -{ CPUFUNC(op_c179_4), 0, 49529 }, /* AND */ -{ CPUFUNC(op_c188_4), 0, 49544 }, /* EXG */ -{ CPUFUNC(op_c190_4), 0, 49552 }, /* AND */ -{ CPUFUNC(op_c198_4), 0, 49560 }, /* AND */ -{ CPUFUNC(op_c1a0_4), 0, 49568 }, /* AND */ -{ CPUFUNC(op_c1a8_4), 0, 49576 }, /* AND */ -{ CPUFUNC(op_c1b0_4), 0, 49584 }, /* AND */ -{ CPUFUNC(op_c1b8_4), 0, 49592 }, /* AND */ -{ CPUFUNC(op_c1b9_4), 0, 49593 }, /* AND */ -{ CPUFUNC(op_c1c0_4), 0, 49600 }, /* MULS */ -{ CPUFUNC(op_c1d0_4), 0, 49616 }, /* MULS */ -{ CPUFUNC(op_c1d8_4), 0, 49624 }, /* MULS */ -{ CPUFUNC(op_c1e0_4), 0, 49632 }, /* MULS */ -{ CPUFUNC(op_c1e8_4), 0, 49640 }, /* MULS */ -{ CPUFUNC(op_c1f0_4), 0, 49648 }, /* MULS */ -{ CPUFUNC(op_c1f8_4), 0, 49656 }, /* MULS */ -{ CPUFUNC(op_c1f9_4), 0, 49657 }, /* MULS */ -{ CPUFUNC(op_c1fa_4), 0, 49658 }, /* MULS */ -{ CPUFUNC(op_c1fb_4), 0, 49659 }, /* MULS */ -{ CPUFUNC(op_c1fc_4), 0, 49660 }, /* MULS */ -{ CPUFUNC(op_d000_4), 0, 53248 }, /* ADD */ -{ CPUFUNC(op_d010_4), 0, 53264 }, /* ADD */ -{ CPUFUNC(op_d018_4), 0, 53272 }, /* ADD */ -{ CPUFUNC(op_d020_4), 0, 53280 }, /* ADD */ -{ CPUFUNC(op_d028_4), 0, 53288 }, /* ADD */ -{ CPUFUNC(op_d030_4), 0, 53296 }, /* ADD */ -{ CPUFUNC(op_d038_4), 0, 53304 }, /* ADD */ -{ CPUFUNC(op_d039_4), 0, 53305 }, /* ADD */ -{ CPUFUNC(op_d03a_4), 0, 53306 }, /* ADD */ -{ CPUFUNC(op_d03b_4), 0, 53307 }, /* ADD */ -{ CPUFUNC(op_d03c_4), 0, 53308 }, /* ADD */ -{ CPUFUNC(op_d040_4), 0, 53312 }, /* ADD */ -{ CPUFUNC(op_d048_4), 0, 53320 }, /* ADD */ -{ CPUFUNC(op_d050_4), 0, 53328 }, /* ADD */ -{ CPUFUNC(op_d058_4), 0, 53336 }, /* ADD */ -{ CPUFUNC(op_d060_4), 0, 53344 }, /* ADD */ -{ CPUFUNC(op_d068_4), 0, 53352 }, /* ADD */ -{ CPUFUNC(op_d070_4), 0, 53360 }, /* ADD */ -{ CPUFUNC(op_d078_4), 0, 53368 }, /* ADD */ -{ CPUFUNC(op_d079_4), 0, 53369 }, /* ADD */ -{ CPUFUNC(op_d07a_4), 0, 53370 }, /* ADD */ -{ CPUFUNC(op_d07b_4), 0, 53371 }, /* ADD */ -{ CPUFUNC(op_d07c_4), 0, 53372 }, /* ADD */ -{ CPUFUNC(op_d080_4), 0, 53376 }, /* ADD */ -{ CPUFUNC(op_d088_4), 0, 53384 }, /* ADD */ -{ CPUFUNC(op_d090_4), 0, 53392 }, /* ADD */ -{ CPUFUNC(op_d098_4), 0, 53400 }, /* ADD */ -{ CPUFUNC(op_d0a0_4), 0, 53408 }, /* ADD */ -{ CPUFUNC(op_d0a8_4), 0, 53416 }, /* ADD */ -{ CPUFUNC(op_d0b0_4), 0, 53424 }, /* ADD */ -{ CPUFUNC(op_d0b8_4), 0, 53432 }, /* ADD */ -{ CPUFUNC(op_d0b9_4), 0, 53433 }, /* ADD */ -{ CPUFUNC(op_d0ba_4), 0, 53434 }, /* ADD */ -{ CPUFUNC(op_d0bb_4), 0, 53435 }, /* ADD */ -{ CPUFUNC(op_d0bc_4), 0, 53436 }, /* ADD */ -{ CPUFUNC(op_d0c0_4), 0, 53440 }, /* ADDA */ -{ CPUFUNC(op_d0c8_4), 0, 53448 }, /* ADDA */ -{ CPUFUNC(op_d0d0_4), 0, 53456 }, /* ADDA */ -{ CPUFUNC(op_d0d8_4), 0, 53464 }, /* ADDA */ -{ CPUFUNC(op_d0e0_4), 0, 53472 }, /* ADDA */ -{ CPUFUNC(op_d0e8_4), 0, 53480 }, /* ADDA */ -{ CPUFUNC(op_d0f0_4), 0, 53488 }, /* ADDA */ -{ CPUFUNC(op_d0f8_4), 0, 53496 }, /* ADDA */ -{ CPUFUNC(op_d0f9_4), 0, 53497 }, /* ADDA */ -{ CPUFUNC(op_d0fa_4), 0, 53498 }, /* ADDA */ -{ CPUFUNC(op_d0fb_4), 0, 53499 }, /* ADDA */ -{ CPUFUNC(op_d0fc_4), 0, 53500 }, /* ADDA */ -{ CPUFUNC(op_d100_4), 0, 53504 }, /* ADDX */ -{ CPUFUNC(op_d108_4), 0, 53512 }, /* ADDX */ -{ CPUFUNC(op_d110_4), 0, 53520 }, /* ADD */ -{ CPUFUNC(op_d118_4), 0, 53528 }, /* ADD */ -{ CPUFUNC(op_d120_4), 0, 53536 }, /* ADD */ -{ CPUFUNC(op_d128_4), 0, 53544 }, /* ADD */ -{ CPUFUNC(op_d130_4), 0, 53552 }, /* ADD */ -{ CPUFUNC(op_d138_4), 0, 53560 }, /* ADD */ -{ CPUFUNC(op_d139_4), 0, 53561 }, /* ADD */ -{ CPUFUNC(op_d140_4), 0, 53568 }, /* ADDX */ -{ CPUFUNC(op_d148_4), 0, 53576 }, /* ADDX */ -{ CPUFUNC(op_d150_4), 0, 53584 }, /* ADD */ -{ CPUFUNC(op_d158_4), 0, 53592 }, /* ADD */ -{ CPUFUNC(op_d160_4), 0, 53600 }, /* ADD */ -{ CPUFUNC(op_d168_4), 0, 53608 }, /* ADD */ -{ CPUFUNC(op_d170_4), 0, 53616 }, /* ADD */ -{ CPUFUNC(op_d178_4), 0, 53624 }, /* ADD */ -{ CPUFUNC(op_d179_4), 0, 53625 }, /* ADD */ -{ CPUFUNC(op_d180_4), 0, 53632 }, /* ADDX */ -{ CPUFUNC(op_d188_4), 0, 53640 }, /* ADDX */ -{ CPUFUNC(op_d190_4), 0, 53648 }, /* ADD */ -{ CPUFUNC(op_d198_4), 0, 53656 }, /* ADD */ -{ CPUFUNC(op_d1a0_4), 0, 53664 }, /* ADD */ -{ CPUFUNC(op_d1a8_4), 0, 53672 }, /* ADD */ -{ CPUFUNC(op_d1b0_4), 0, 53680 }, /* ADD */ -{ CPUFUNC(op_d1b8_4), 0, 53688 }, /* ADD */ -{ CPUFUNC(op_d1b9_4), 0, 53689 }, /* ADD */ -{ CPUFUNC(op_d1c0_4), 0, 53696 }, /* ADDA */ -{ CPUFUNC(op_d1c8_4), 0, 53704 }, /* ADDA */ -{ CPUFUNC(op_d1d0_4), 0, 53712 }, /* ADDA */ -{ CPUFUNC(op_d1d8_4), 0, 53720 }, /* ADDA */ -{ CPUFUNC(op_d1e0_4), 0, 53728 }, /* ADDA */ -{ CPUFUNC(op_d1e8_4), 0, 53736 }, /* ADDA */ -{ CPUFUNC(op_d1f0_4), 0, 53744 }, /* ADDA */ -{ CPUFUNC(op_d1f8_4), 0, 53752 }, /* ADDA */ -{ CPUFUNC(op_d1f9_4), 0, 53753 }, /* ADDA */ -{ CPUFUNC(op_d1fa_4), 0, 53754 }, /* ADDA */ -{ CPUFUNC(op_d1fb_4), 0, 53755 }, /* ADDA */ -{ CPUFUNC(op_d1fc_4), 0, 53756 }, /* ADDA */ -{ CPUFUNC(op_e000_4), 0, 57344 }, /* ASR */ -{ CPUFUNC(op_e008_4), 0, 57352 }, /* LSR */ -{ CPUFUNC(op_e010_4), 0, 57360 }, /* ROXR */ -{ CPUFUNC(op_e018_4), 0, 57368 }, /* ROR */ -{ CPUFUNC(op_e020_4), 0, 57376 }, /* ASR */ -{ CPUFUNC(op_e028_4), 0, 57384 }, /* LSR */ -{ CPUFUNC(op_e030_4), 0, 57392 }, /* ROXR */ -{ CPUFUNC(op_e038_4), 0, 57400 }, /* ROR */ -{ CPUFUNC(op_e040_4), 0, 57408 }, /* ASR */ -{ CPUFUNC(op_e048_4), 0, 57416 }, /* LSR */ -{ CPUFUNC(op_e050_4), 0, 57424 }, /* ROXR */ -{ CPUFUNC(op_e058_4), 0, 57432 }, /* ROR */ -{ CPUFUNC(op_e060_4), 0, 57440 }, /* ASR */ -{ CPUFUNC(op_e068_4), 0, 57448 }, /* LSR */ -{ CPUFUNC(op_e070_4), 0, 57456 }, /* ROXR */ -{ CPUFUNC(op_e078_4), 0, 57464 }, /* ROR */ -{ CPUFUNC(op_e080_4), 0, 57472 }, /* ASR */ -{ CPUFUNC(op_e088_4), 0, 57480 }, /* LSR */ -{ CPUFUNC(op_e090_4), 0, 57488 }, /* ROXR */ -{ CPUFUNC(op_e098_4), 0, 57496 }, /* ROR */ -{ CPUFUNC(op_e0a0_4), 0, 57504 }, /* ASR */ -{ CPUFUNC(op_e0a8_4), 0, 57512 }, /* LSR */ -{ CPUFUNC(op_e0b0_4), 0, 57520 }, /* ROXR */ -{ CPUFUNC(op_e0b8_4), 0, 57528 }, /* ROR */ -{ CPUFUNC(op_e0d0_4), 0, 57552 }, /* ASRW */ -{ CPUFUNC(op_e0d8_4), 0, 57560 }, /* ASRW */ -{ CPUFUNC(op_e0e0_4), 0, 57568 }, /* ASRW */ -{ CPUFUNC(op_e0e8_4), 0, 57576 }, /* ASRW */ -{ CPUFUNC(op_e0f0_4), 0, 57584 }, /* ASRW */ -{ CPUFUNC(op_e0f8_4), 0, 57592 }, /* ASRW */ -{ CPUFUNC(op_e0f9_4), 0, 57593 }, /* ASRW */ -{ CPUFUNC(op_e100_4), 0, 57600 }, /* ASL */ -{ CPUFUNC(op_e108_4), 0, 57608 }, /* LSL */ -{ CPUFUNC(op_e110_4), 0, 57616 }, /* ROXL */ -{ CPUFUNC(op_e118_4), 0, 57624 }, /* ROL */ -{ CPUFUNC(op_e120_4), 0, 57632 }, /* ASL */ -{ CPUFUNC(op_e128_4), 0, 57640 }, /* LSL */ -{ CPUFUNC(op_e130_4), 0, 57648 }, /* ROXL */ -{ CPUFUNC(op_e138_4), 0, 57656 }, /* ROL */ -{ CPUFUNC(op_e140_4), 0, 57664 }, /* ASL */ -{ CPUFUNC(op_e148_4), 0, 57672 }, /* LSL */ -{ CPUFUNC(op_e150_4), 0, 57680 }, /* ROXL */ -{ CPUFUNC(op_e158_4), 0, 57688 }, /* ROL */ -{ CPUFUNC(op_e160_4), 0, 57696 }, /* ASL */ -{ CPUFUNC(op_e168_4), 0, 57704 }, /* LSL */ -{ CPUFUNC(op_e170_4), 0, 57712 }, /* ROXL */ -{ CPUFUNC(op_e178_4), 0, 57720 }, /* ROL */ -{ CPUFUNC(op_e180_4), 0, 57728 }, /* ASL */ -{ CPUFUNC(op_e188_4), 0, 57736 }, /* LSL */ -{ CPUFUNC(op_e190_4), 0, 57744 }, /* ROXL */ -{ CPUFUNC(op_e198_4), 0, 57752 }, /* ROL */ -{ CPUFUNC(op_e1a0_4), 0, 57760 }, /* ASL */ -{ CPUFUNC(op_e1a8_4), 0, 57768 }, /* LSL */ -{ CPUFUNC(op_e1b0_4), 0, 57776 }, /* ROXL */ -{ CPUFUNC(op_e1b8_4), 0, 57784 }, /* ROL */ -{ CPUFUNC(op_e1d0_4), 0, 57808 }, /* ASLW */ -{ CPUFUNC(op_e1d8_4), 0, 57816 }, /* ASLW */ -{ CPUFUNC(op_e1e0_4), 0, 57824 }, /* ASLW */ -{ CPUFUNC(op_e1e8_4), 0, 57832 }, /* ASLW */ -{ CPUFUNC(op_e1f0_4), 0, 57840 }, /* ASLW */ -{ CPUFUNC(op_e1f8_4), 0, 57848 }, /* ASLW */ -{ CPUFUNC(op_e1f9_4), 0, 57849 }, /* ASLW */ -{ CPUFUNC(op_e2d0_4), 0, 58064 }, /* LSRW */ -{ CPUFUNC(op_e2d8_4), 0, 58072 }, /* LSRW */ -{ CPUFUNC(op_e2e0_4), 0, 58080 }, /* LSRW */ -{ CPUFUNC(op_e2e8_4), 0, 58088 }, /* LSRW */ -{ CPUFUNC(op_e2f0_4), 0, 58096 }, /* LSRW */ -{ CPUFUNC(op_e2f8_4), 0, 58104 }, /* LSRW */ -{ CPUFUNC(op_e2f9_4), 0, 58105 }, /* LSRW */ -{ CPUFUNC(op_e3d0_4), 0, 58320 }, /* LSLW */ -{ CPUFUNC(op_e3d8_4), 0, 58328 }, /* LSLW */ -{ CPUFUNC(op_e3e0_4), 0, 58336 }, /* LSLW */ -{ CPUFUNC(op_e3e8_4), 0, 58344 }, /* LSLW */ -{ CPUFUNC(op_e3f0_4), 0, 58352 }, /* LSLW */ -{ CPUFUNC(op_e3f8_4), 0, 58360 }, /* LSLW */ -{ CPUFUNC(op_e3f9_4), 0, 58361 }, /* LSLW */ -{ CPUFUNC(op_e4d0_4), 0, 58576 }, /* ROXRW */ -{ CPUFUNC(op_e4d8_4), 0, 58584 }, /* ROXRW */ -{ CPUFUNC(op_e4e0_4), 0, 58592 }, /* ROXRW */ -{ CPUFUNC(op_e4e8_4), 0, 58600 }, /* ROXRW */ -{ CPUFUNC(op_e4f0_4), 0, 58608 }, /* ROXRW */ -{ CPUFUNC(op_e4f8_4), 0, 58616 }, /* ROXRW */ -{ CPUFUNC(op_e4f9_4), 0, 58617 }, /* ROXRW */ -{ CPUFUNC(op_e5d0_4), 0, 58832 }, /* ROXLW */ -{ CPUFUNC(op_e5d8_4), 0, 58840 }, /* ROXLW */ -{ CPUFUNC(op_e5e0_4), 0, 58848 }, /* ROXLW */ -{ CPUFUNC(op_e5e8_4), 0, 58856 }, /* ROXLW */ -{ CPUFUNC(op_e5f0_4), 0, 58864 }, /* ROXLW */ -{ CPUFUNC(op_e5f8_4), 0, 58872 }, /* ROXLW */ -{ CPUFUNC(op_e5f9_4), 0, 58873 }, /* ROXLW */ -{ CPUFUNC(op_e6d0_4), 0, 59088 }, /* RORW */ -{ CPUFUNC(op_e6d8_4), 0, 59096 }, /* RORW */ -{ CPUFUNC(op_e6e0_4), 0, 59104 }, /* RORW */ -{ CPUFUNC(op_e6e8_4), 0, 59112 }, /* RORW */ -{ CPUFUNC(op_e6f0_4), 0, 59120 }, /* RORW */ -{ CPUFUNC(op_e6f8_4), 0, 59128 }, /* RORW */ -{ CPUFUNC(op_e6f9_4), 0, 59129 }, /* RORW */ -{ CPUFUNC(op_e7d0_4), 0, 59344 }, /* ROLW */ -{ CPUFUNC(op_e7d8_4), 0, 59352 }, /* ROLW */ -{ CPUFUNC(op_e7e0_4), 0, 59360 }, /* ROLW */ -{ CPUFUNC(op_e7e8_4), 0, 59368 }, /* ROLW */ -{ CPUFUNC(op_e7f0_4), 0, 59376 }, /* ROLW */ -{ CPUFUNC(op_e7f8_4), 0, 59384 }, /* ROLW */ -{ CPUFUNC(op_e7f9_4), 0, 59385 }, /* ROLW */ -{ 0, 0, 0 }}; + const struct cputbl CPUFUNC(op_smalltbl_5)[] = { { CPUFUNC(op_0_5), 0, 0 }, /* OR */ { CPUFUNC(op_10_5), 0, 16 }, /* OR */ diff --git a/waterbox/virtualjaguar/src/m68000/cputbl.h b/waterbox/virtualjaguar/src/m68000/cputbl.h index e5be860448..3e6128825b 100644 --- a/waterbox/virtualjaguar/src/m68000/cputbl.h +++ b/waterbox/virtualjaguar/src/m68000/cputbl.h @@ -1,3163 +1,3 @@ -extern cpuop_func op_0_4_nf; -extern cpuop_func op_0_4_ff; -extern cpuop_func op_10_4_nf; -extern cpuop_func op_10_4_ff; -extern cpuop_func op_18_4_nf; -extern cpuop_func op_18_4_ff; -extern cpuop_func op_20_4_nf; -extern cpuop_func op_20_4_ff; -extern cpuop_func op_28_4_nf; -extern cpuop_func op_28_4_ff; -extern cpuop_func op_30_4_nf; -extern cpuop_func op_30_4_ff; -extern cpuop_func op_38_4_nf; -extern cpuop_func op_38_4_ff; -extern cpuop_func op_39_4_nf; -extern cpuop_func op_39_4_ff; -extern cpuop_func op_3c_4_nf; -extern cpuop_func op_3c_4_ff; -extern cpuop_func op_40_4_nf; -extern cpuop_func op_40_4_ff; -extern cpuop_func op_50_4_nf; -extern cpuop_func op_50_4_ff; -extern cpuop_func op_58_4_nf; -extern cpuop_func op_58_4_ff; -extern cpuop_func op_60_4_nf; -extern cpuop_func op_60_4_ff; -extern cpuop_func op_68_4_nf; -extern cpuop_func op_68_4_ff; -extern cpuop_func op_70_4_nf; -extern cpuop_func op_70_4_ff; -extern cpuop_func op_78_4_nf; -extern cpuop_func op_78_4_ff; -extern cpuop_func op_79_4_nf; -extern cpuop_func op_79_4_ff; -extern cpuop_func op_7c_4_nf; -extern cpuop_func op_7c_4_ff; -extern cpuop_func op_80_4_nf; -extern cpuop_func op_80_4_ff; -extern cpuop_func op_90_4_nf; -extern cpuop_func op_90_4_ff; -extern cpuop_func op_98_4_nf; -extern cpuop_func op_98_4_ff; -extern cpuop_func op_a0_4_nf; -extern cpuop_func op_a0_4_ff; -extern cpuop_func op_a8_4_nf; -extern cpuop_func op_a8_4_ff; -extern cpuop_func op_b0_4_nf; -extern cpuop_func op_b0_4_ff; -extern cpuop_func op_b8_4_nf; -extern cpuop_func op_b8_4_ff; -extern cpuop_func op_b9_4_nf; -extern cpuop_func op_b9_4_ff; -extern cpuop_func op_100_4_nf; -extern cpuop_func op_100_4_ff; -extern cpuop_func op_108_4_nf; -extern cpuop_func op_108_4_ff; -extern cpuop_func op_110_4_nf; -extern cpuop_func op_110_4_ff; -extern cpuop_func op_118_4_nf; -extern cpuop_func op_118_4_ff; -extern cpuop_func op_120_4_nf; -extern cpuop_func op_120_4_ff; -extern cpuop_func op_128_4_nf; -extern cpuop_func op_128_4_ff; -extern cpuop_func op_130_4_nf; -extern cpuop_func op_130_4_ff; -extern cpuop_func op_138_4_nf; -extern cpuop_func op_138_4_ff; -extern cpuop_func op_139_4_nf; -extern cpuop_func op_139_4_ff; -extern cpuop_func op_13a_4_nf; -extern cpuop_func op_13a_4_ff; -extern cpuop_func op_13b_4_nf; -extern cpuop_func op_13b_4_ff; -extern cpuop_func op_13c_4_nf; -extern cpuop_func op_13c_4_ff; -extern cpuop_func op_140_4_nf; -extern cpuop_func op_140_4_ff; -extern cpuop_func op_148_4_nf; -extern cpuop_func op_148_4_ff; -extern cpuop_func op_150_4_nf; -extern cpuop_func op_150_4_ff; -extern cpuop_func op_158_4_nf; -extern cpuop_func op_158_4_ff; -extern cpuop_func op_160_4_nf; -extern cpuop_func op_160_4_ff; -extern cpuop_func op_168_4_nf; -extern cpuop_func op_168_4_ff; -extern cpuop_func op_170_4_nf; -extern cpuop_func op_170_4_ff; -extern cpuop_func op_178_4_nf; -extern cpuop_func op_178_4_ff; -extern cpuop_func op_179_4_nf; -extern cpuop_func op_179_4_ff; -extern cpuop_func op_17a_4_nf; -extern cpuop_func op_17a_4_ff; -extern cpuop_func op_17b_4_nf; -extern cpuop_func op_17b_4_ff; -extern cpuop_func op_180_4_nf; -extern cpuop_func op_180_4_ff; -extern cpuop_func op_188_4_nf; -extern cpuop_func op_188_4_ff; -extern cpuop_func op_190_4_nf; -extern cpuop_func op_190_4_ff; -extern cpuop_func op_198_4_nf; -extern cpuop_func op_198_4_ff; -extern cpuop_func op_1a0_4_nf; -extern cpuop_func op_1a0_4_ff; -extern cpuop_func op_1a8_4_nf; -extern cpuop_func op_1a8_4_ff; -extern cpuop_func op_1b0_4_nf; -extern cpuop_func op_1b0_4_ff; -extern cpuop_func op_1b8_4_nf; -extern cpuop_func op_1b8_4_ff; -extern cpuop_func op_1b9_4_nf; -extern cpuop_func op_1b9_4_ff; -extern cpuop_func op_1ba_4_nf; -extern cpuop_func op_1ba_4_ff; -extern cpuop_func op_1bb_4_nf; -extern cpuop_func op_1bb_4_ff; -extern cpuop_func op_1c0_4_nf; -extern cpuop_func op_1c0_4_ff; -extern cpuop_func op_1c8_4_nf; -extern cpuop_func op_1c8_4_ff; -extern cpuop_func op_1d0_4_nf; -extern cpuop_func op_1d0_4_ff; -extern cpuop_func op_1d8_4_nf; -extern cpuop_func op_1d8_4_ff; -extern cpuop_func op_1e0_4_nf; -extern cpuop_func op_1e0_4_ff; -extern cpuop_func op_1e8_4_nf; -extern cpuop_func op_1e8_4_ff; -extern cpuop_func op_1f0_4_nf; -extern cpuop_func op_1f0_4_ff; -extern cpuop_func op_1f8_4_nf; -extern cpuop_func op_1f8_4_ff; -extern cpuop_func op_1f9_4_nf; -extern cpuop_func op_1f9_4_ff; -extern cpuop_func op_1fa_4_nf; -extern cpuop_func op_1fa_4_ff; -extern cpuop_func op_1fb_4_nf; -extern cpuop_func op_1fb_4_ff; -extern cpuop_func op_200_4_nf; -extern cpuop_func op_200_4_ff; -extern cpuop_func op_210_4_nf; -extern cpuop_func op_210_4_ff; -extern cpuop_func op_218_4_nf; -extern cpuop_func op_218_4_ff; -extern cpuop_func op_220_4_nf; -extern cpuop_func op_220_4_ff; -extern cpuop_func op_228_4_nf; -extern cpuop_func op_228_4_ff; -extern cpuop_func op_230_4_nf; -extern cpuop_func op_230_4_ff; -extern cpuop_func op_238_4_nf; -extern cpuop_func op_238_4_ff; -extern cpuop_func op_239_4_nf; -extern cpuop_func op_239_4_ff; -extern cpuop_func op_23c_4_nf; -extern cpuop_func op_23c_4_ff; -extern cpuop_func op_240_4_nf; -extern cpuop_func op_240_4_ff; -extern cpuop_func op_250_4_nf; -extern cpuop_func op_250_4_ff; -extern cpuop_func op_258_4_nf; -extern cpuop_func op_258_4_ff; -extern cpuop_func op_260_4_nf; -extern cpuop_func op_260_4_ff; -extern cpuop_func op_268_4_nf; -extern cpuop_func op_268_4_ff; -extern cpuop_func op_270_4_nf; -extern cpuop_func op_270_4_ff; -extern cpuop_func op_278_4_nf; -extern cpuop_func op_278_4_ff; -extern cpuop_func op_279_4_nf; -extern cpuop_func op_279_4_ff; -extern cpuop_func op_27c_4_nf; -extern cpuop_func op_27c_4_ff; -extern cpuop_func op_280_4_nf; -extern cpuop_func op_280_4_ff; -extern cpuop_func op_290_4_nf; -extern cpuop_func op_290_4_ff; -extern cpuop_func op_298_4_nf; -extern cpuop_func op_298_4_ff; -extern cpuop_func op_2a0_4_nf; -extern cpuop_func op_2a0_4_ff; -extern cpuop_func op_2a8_4_nf; -extern cpuop_func op_2a8_4_ff; -extern cpuop_func op_2b0_4_nf; -extern cpuop_func op_2b0_4_ff; -extern cpuop_func op_2b8_4_nf; -extern cpuop_func op_2b8_4_ff; -extern cpuop_func op_2b9_4_nf; -extern cpuop_func op_2b9_4_ff; -extern cpuop_func op_400_4_nf; -extern cpuop_func op_400_4_ff; -extern cpuop_func op_410_4_nf; -extern cpuop_func op_410_4_ff; -extern cpuop_func op_418_4_nf; -extern cpuop_func op_418_4_ff; -extern cpuop_func op_420_4_nf; -extern cpuop_func op_420_4_ff; -extern cpuop_func op_428_4_nf; -extern cpuop_func op_428_4_ff; -extern cpuop_func op_430_4_nf; -extern cpuop_func op_430_4_ff; -extern cpuop_func op_438_4_nf; -extern cpuop_func op_438_4_ff; -extern cpuop_func op_439_4_nf; -extern cpuop_func op_439_4_ff; -extern cpuop_func op_440_4_nf; -extern cpuop_func op_440_4_ff; -extern cpuop_func op_450_4_nf; -extern cpuop_func op_450_4_ff; -extern cpuop_func op_458_4_nf; -extern cpuop_func op_458_4_ff; -extern cpuop_func op_460_4_nf; -extern cpuop_func op_460_4_ff; -extern cpuop_func op_468_4_nf; -extern cpuop_func op_468_4_ff; -extern cpuop_func op_470_4_nf; -extern cpuop_func op_470_4_ff; -extern cpuop_func op_478_4_nf; -extern cpuop_func op_478_4_ff; -extern cpuop_func op_479_4_nf; -extern cpuop_func op_479_4_ff; -extern cpuop_func op_480_4_nf; -extern cpuop_func op_480_4_ff; -extern cpuop_func op_490_4_nf; -extern cpuop_func op_490_4_ff; -extern cpuop_func op_498_4_nf; -extern cpuop_func op_498_4_ff; -extern cpuop_func op_4a0_4_nf; -extern cpuop_func op_4a0_4_ff; -extern cpuop_func op_4a8_4_nf; -extern cpuop_func op_4a8_4_ff; -extern cpuop_func op_4b0_4_nf; -extern cpuop_func op_4b0_4_ff; -extern cpuop_func op_4b8_4_nf; -extern cpuop_func op_4b8_4_ff; -extern cpuop_func op_4b9_4_nf; -extern cpuop_func op_4b9_4_ff; -extern cpuop_func op_600_4_nf; -extern cpuop_func op_600_4_ff; -extern cpuop_func op_610_4_nf; -extern cpuop_func op_610_4_ff; -extern cpuop_func op_618_4_nf; -extern cpuop_func op_618_4_ff; -extern cpuop_func op_620_4_nf; -extern cpuop_func op_620_4_ff; -extern cpuop_func op_628_4_nf; -extern cpuop_func op_628_4_ff; -extern cpuop_func op_630_4_nf; -extern cpuop_func op_630_4_ff; -extern cpuop_func op_638_4_nf; -extern cpuop_func op_638_4_ff; -extern cpuop_func op_639_4_nf; -extern cpuop_func op_639_4_ff; -extern cpuop_func op_640_4_nf; -extern cpuop_func op_640_4_ff; -extern cpuop_func op_650_4_nf; -extern cpuop_func op_650_4_ff; -extern cpuop_func op_658_4_nf; -extern cpuop_func op_658_4_ff; -extern cpuop_func op_660_4_nf; -extern cpuop_func op_660_4_ff; -extern cpuop_func op_668_4_nf; -extern cpuop_func op_668_4_ff; -extern cpuop_func op_670_4_nf; -extern cpuop_func op_670_4_ff; -extern cpuop_func op_678_4_nf; -extern cpuop_func op_678_4_ff; -extern cpuop_func op_679_4_nf; -extern cpuop_func op_679_4_ff; -extern cpuop_func op_680_4_nf; -extern cpuop_func op_680_4_ff; -extern cpuop_func op_690_4_nf; -extern cpuop_func op_690_4_ff; -extern cpuop_func op_698_4_nf; -extern cpuop_func op_698_4_ff; -extern cpuop_func op_6a0_4_nf; -extern cpuop_func op_6a0_4_ff; -extern cpuop_func op_6a8_4_nf; -extern cpuop_func op_6a8_4_ff; -extern cpuop_func op_6b0_4_nf; -extern cpuop_func op_6b0_4_ff; -extern cpuop_func op_6b8_4_nf; -extern cpuop_func op_6b8_4_ff; -extern cpuop_func op_6b9_4_nf; -extern cpuop_func op_6b9_4_ff; -extern cpuop_func op_800_4_nf; -extern cpuop_func op_800_4_ff; -extern cpuop_func op_810_4_nf; -extern cpuop_func op_810_4_ff; -extern cpuop_func op_818_4_nf; -extern cpuop_func op_818_4_ff; -extern cpuop_func op_820_4_nf; -extern cpuop_func op_820_4_ff; -extern cpuop_func op_828_4_nf; -extern cpuop_func op_828_4_ff; -extern cpuop_func op_830_4_nf; -extern cpuop_func op_830_4_ff; -extern cpuop_func op_838_4_nf; -extern cpuop_func op_838_4_ff; -extern cpuop_func op_839_4_nf; -extern cpuop_func op_839_4_ff; -extern cpuop_func op_83a_4_nf; -extern cpuop_func op_83a_4_ff; -extern cpuop_func op_83b_4_nf; -extern cpuop_func op_83b_4_ff; -extern cpuop_func op_83c_4_nf; -extern cpuop_func op_83c_4_ff; -extern cpuop_func op_840_4_nf; -extern cpuop_func op_840_4_ff; -extern cpuop_func op_850_4_nf; -extern cpuop_func op_850_4_ff; -extern cpuop_func op_858_4_nf; -extern cpuop_func op_858_4_ff; -extern cpuop_func op_860_4_nf; -extern cpuop_func op_860_4_ff; -extern cpuop_func op_868_4_nf; -extern cpuop_func op_868_4_ff; -extern cpuop_func op_870_4_nf; -extern cpuop_func op_870_4_ff; -extern cpuop_func op_878_4_nf; -extern cpuop_func op_878_4_ff; -extern cpuop_func op_879_4_nf; -extern cpuop_func op_879_4_ff; -extern cpuop_func op_87a_4_nf; -extern cpuop_func op_87a_4_ff; -extern cpuop_func op_87b_4_nf; -extern cpuop_func op_87b_4_ff; -extern cpuop_func op_880_4_nf; -extern cpuop_func op_880_4_ff; -extern cpuop_func op_890_4_nf; -extern cpuop_func op_890_4_ff; -extern cpuop_func op_898_4_nf; -extern cpuop_func op_898_4_ff; -extern cpuop_func op_8a0_4_nf; -extern cpuop_func op_8a0_4_ff; -extern cpuop_func op_8a8_4_nf; -extern cpuop_func op_8a8_4_ff; -extern cpuop_func op_8b0_4_nf; -extern cpuop_func op_8b0_4_ff; -extern cpuop_func op_8b8_4_nf; -extern cpuop_func op_8b8_4_ff; -extern cpuop_func op_8b9_4_nf; -extern cpuop_func op_8b9_4_ff; -extern cpuop_func op_8ba_4_nf; -extern cpuop_func op_8ba_4_ff; -extern cpuop_func op_8bb_4_nf; -extern cpuop_func op_8bb_4_ff; -extern cpuop_func op_8c0_4_nf; -extern cpuop_func op_8c0_4_ff; -extern cpuop_func op_8d0_4_nf; -extern cpuop_func op_8d0_4_ff; -extern cpuop_func op_8d8_4_nf; -extern cpuop_func op_8d8_4_ff; -extern cpuop_func op_8e0_4_nf; -extern cpuop_func op_8e0_4_ff; -extern cpuop_func op_8e8_4_nf; -extern cpuop_func op_8e8_4_ff; -extern cpuop_func op_8f0_4_nf; -extern cpuop_func op_8f0_4_ff; -extern cpuop_func op_8f8_4_nf; -extern cpuop_func op_8f8_4_ff; -extern cpuop_func op_8f9_4_nf; -extern cpuop_func op_8f9_4_ff; -extern cpuop_func op_8fa_4_nf; -extern cpuop_func op_8fa_4_ff; -extern cpuop_func op_8fb_4_nf; -extern cpuop_func op_8fb_4_ff; -extern cpuop_func op_a00_4_nf; -extern cpuop_func op_a00_4_ff; -extern cpuop_func op_a10_4_nf; -extern cpuop_func op_a10_4_ff; -extern cpuop_func op_a18_4_nf; -extern cpuop_func op_a18_4_ff; -extern cpuop_func op_a20_4_nf; -extern cpuop_func op_a20_4_ff; -extern cpuop_func op_a28_4_nf; -extern cpuop_func op_a28_4_ff; -extern cpuop_func op_a30_4_nf; -extern cpuop_func op_a30_4_ff; -extern cpuop_func op_a38_4_nf; -extern cpuop_func op_a38_4_ff; -extern cpuop_func op_a39_4_nf; -extern cpuop_func op_a39_4_ff; -extern cpuop_func op_a3c_4_nf; -extern cpuop_func op_a3c_4_ff; -extern cpuop_func op_a40_4_nf; -extern cpuop_func op_a40_4_ff; -extern cpuop_func op_a50_4_nf; -extern cpuop_func op_a50_4_ff; -extern cpuop_func op_a58_4_nf; -extern cpuop_func op_a58_4_ff; -extern cpuop_func op_a60_4_nf; -extern cpuop_func op_a60_4_ff; -extern cpuop_func op_a68_4_nf; -extern cpuop_func op_a68_4_ff; -extern cpuop_func op_a70_4_nf; -extern cpuop_func op_a70_4_ff; -extern cpuop_func op_a78_4_nf; -extern cpuop_func op_a78_4_ff; -extern cpuop_func op_a79_4_nf; -extern cpuop_func op_a79_4_ff; -extern cpuop_func op_a7c_4_nf; -extern cpuop_func op_a7c_4_ff; -extern cpuop_func op_a80_4_nf; -extern cpuop_func op_a80_4_ff; -extern cpuop_func op_a90_4_nf; -extern cpuop_func op_a90_4_ff; -extern cpuop_func op_a98_4_nf; -extern cpuop_func op_a98_4_ff; -extern cpuop_func op_aa0_4_nf; -extern cpuop_func op_aa0_4_ff; -extern cpuop_func op_aa8_4_nf; -extern cpuop_func op_aa8_4_ff; -extern cpuop_func op_ab0_4_nf; -extern cpuop_func op_ab0_4_ff; -extern cpuop_func op_ab8_4_nf; -extern cpuop_func op_ab8_4_ff; -extern cpuop_func op_ab9_4_nf; -extern cpuop_func op_ab9_4_ff; -extern cpuop_func op_c00_4_nf; -extern cpuop_func op_c00_4_ff; -extern cpuop_func op_c10_4_nf; -extern cpuop_func op_c10_4_ff; -extern cpuop_func op_c18_4_nf; -extern cpuop_func op_c18_4_ff; -extern cpuop_func op_c20_4_nf; -extern cpuop_func op_c20_4_ff; -extern cpuop_func op_c28_4_nf; -extern cpuop_func op_c28_4_ff; -extern cpuop_func op_c30_4_nf; -extern cpuop_func op_c30_4_ff; -extern cpuop_func op_c38_4_nf; -extern cpuop_func op_c38_4_ff; -extern cpuop_func op_c39_4_nf; -extern cpuop_func op_c39_4_ff; -extern cpuop_func op_c3a_4_nf; -extern cpuop_func op_c3a_4_ff; -extern cpuop_func op_c3b_4_nf; -extern cpuop_func op_c3b_4_ff; -extern cpuop_func op_c40_4_nf; -extern cpuop_func op_c40_4_ff; -extern cpuop_func op_c50_4_nf; -extern cpuop_func op_c50_4_ff; -extern cpuop_func op_c58_4_nf; -extern cpuop_func op_c58_4_ff; -extern cpuop_func op_c60_4_nf; -extern cpuop_func op_c60_4_ff; -extern cpuop_func op_c68_4_nf; -extern cpuop_func op_c68_4_ff; -extern cpuop_func op_c70_4_nf; -extern cpuop_func op_c70_4_ff; -extern cpuop_func op_c78_4_nf; -extern cpuop_func op_c78_4_ff; -extern cpuop_func op_c79_4_nf; -extern cpuop_func op_c79_4_ff; -extern cpuop_func op_c7a_4_nf; -extern cpuop_func op_c7a_4_ff; -extern cpuop_func op_c7b_4_nf; -extern cpuop_func op_c7b_4_ff; -extern cpuop_func op_c80_4_nf; -extern cpuop_func op_c80_4_ff; -extern cpuop_func op_c90_4_nf; -extern cpuop_func op_c90_4_ff; -extern cpuop_func op_c98_4_nf; -extern cpuop_func op_c98_4_ff; -extern cpuop_func op_ca0_4_nf; -extern cpuop_func op_ca0_4_ff; -extern cpuop_func op_ca8_4_nf; -extern cpuop_func op_ca8_4_ff; -extern cpuop_func op_cb0_4_nf; -extern cpuop_func op_cb0_4_ff; -extern cpuop_func op_cb8_4_nf; -extern cpuop_func op_cb8_4_ff; -extern cpuop_func op_cb9_4_nf; -extern cpuop_func op_cb9_4_ff; -extern cpuop_func op_cba_4_nf; -extern cpuop_func op_cba_4_ff; -extern cpuop_func op_cbb_4_nf; -extern cpuop_func op_cbb_4_ff; -extern cpuop_func op_1000_4_nf; -extern cpuop_func op_1000_4_ff; -extern cpuop_func op_1008_4_nf; -extern cpuop_func op_1008_4_ff; -extern cpuop_func op_1010_4_nf; -extern cpuop_func op_1010_4_ff; -extern cpuop_func op_1018_4_nf; -extern cpuop_func op_1018_4_ff; -extern cpuop_func op_1020_4_nf; -extern cpuop_func op_1020_4_ff; -extern cpuop_func op_1028_4_nf; -extern cpuop_func op_1028_4_ff; -extern cpuop_func op_1030_4_nf; -extern cpuop_func op_1030_4_ff; -extern cpuop_func op_1038_4_nf; -extern cpuop_func op_1038_4_ff; -extern cpuop_func op_1039_4_nf; -extern cpuop_func op_1039_4_ff; -extern cpuop_func op_103a_4_nf; -extern cpuop_func op_103a_4_ff; -extern cpuop_func op_103b_4_nf; -extern cpuop_func op_103b_4_ff; -extern cpuop_func op_103c_4_nf; -extern cpuop_func op_103c_4_ff; -extern cpuop_func op_1080_4_nf; -extern cpuop_func op_1080_4_ff; -extern cpuop_func op_1088_4_nf; -extern cpuop_func op_1088_4_ff; -extern cpuop_func op_1090_4_nf; -extern cpuop_func op_1090_4_ff; -extern cpuop_func op_1098_4_nf; -extern cpuop_func op_1098_4_ff; -extern cpuop_func op_10a0_4_nf; -extern cpuop_func op_10a0_4_ff; -extern cpuop_func op_10a8_4_nf; -extern cpuop_func op_10a8_4_ff; -extern cpuop_func op_10b0_4_nf; -extern cpuop_func op_10b0_4_ff; -extern cpuop_func op_10b8_4_nf; -extern cpuop_func op_10b8_4_ff; -extern cpuop_func op_10b9_4_nf; -extern cpuop_func op_10b9_4_ff; -extern cpuop_func op_10ba_4_nf; -extern cpuop_func op_10ba_4_ff; -extern cpuop_func op_10bb_4_nf; -extern cpuop_func op_10bb_4_ff; -extern cpuop_func op_10bc_4_nf; -extern cpuop_func op_10bc_4_ff; -extern cpuop_func op_10c0_4_nf; -extern cpuop_func op_10c0_4_ff; -extern cpuop_func op_10c8_4_nf; -extern cpuop_func op_10c8_4_ff; -extern cpuop_func op_10d0_4_nf; -extern cpuop_func op_10d0_4_ff; -extern cpuop_func op_10d8_4_nf; -extern cpuop_func op_10d8_4_ff; -extern cpuop_func op_10e0_4_nf; -extern cpuop_func op_10e0_4_ff; -extern cpuop_func op_10e8_4_nf; -extern cpuop_func op_10e8_4_ff; -extern cpuop_func op_10f0_4_nf; -extern cpuop_func op_10f0_4_ff; -extern cpuop_func op_10f8_4_nf; -extern cpuop_func op_10f8_4_ff; -extern cpuop_func op_10f9_4_nf; -extern cpuop_func op_10f9_4_ff; -extern cpuop_func op_10fa_4_nf; -extern cpuop_func op_10fa_4_ff; -extern cpuop_func op_10fb_4_nf; -extern cpuop_func op_10fb_4_ff; -extern cpuop_func op_10fc_4_nf; -extern cpuop_func op_10fc_4_ff; -extern cpuop_func op_1100_4_nf; -extern cpuop_func op_1100_4_ff; -extern cpuop_func op_1108_4_nf; -extern cpuop_func op_1108_4_ff; -extern cpuop_func op_1110_4_nf; -extern cpuop_func op_1110_4_ff; -extern cpuop_func op_1118_4_nf; -extern cpuop_func op_1118_4_ff; -extern cpuop_func op_1120_4_nf; -extern cpuop_func op_1120_4_ff; -extern cpuop_func op_1128_4_nf; -extern cpuop_func op_1128_4_ff; -extern cpuop_func op_1130_4_nf; -extern cpuop_func op_1130_4_ff; -extern cpuop_func op_1138_4_nf; -extern cpuop_func op_1138_4_ff; -extern cpuop_func op_1139_4_nf; -extern cpuop_func op_1139_4_ff; -extern cpuop_func op_113a_4_nf; -extern cpuop_func op_113a_4_ff; -extern cpuop_func op_113b_4_nf; -extern cpuop_func op_113b_4_ff; -extern cpuop_func op_113c_4_nf; -extern cpuop_func op_113c_4_ff; -extern cpuop_func op_1140_4_nf; -extern cpuop_func op_1140_4_ff; -extern cpuop_func op_1148_4_nf; -extern cpuop_func op_1148_4_ff; -extern cpuop_func op_1150_4_nf; -extern cpuop_func op_1150_4_ff; -extern cpuop_func op_1158_4_nf; -extern cpuop_func op_1158_4_ff; -extern cpuop_func op_1160_4_nf; -extern cpuop_func op_1160_4_ff; -extern cpuop_func op_1168_4_nf; -extern cpuop_func op_1168_4_ff; -extern cpuop_func op_1170_4_nf; -extern cpuop_func op_1170_4_ff; -extern cpuop_func op_1178_4_nf; -extern cpuop_func op_1178_4_ff; -extern cpuop_func op_1179_4_nf; -extern cpuop_func op_1179_4_ff; -extern cpuop_func op_117a_4_nf; -extern cpuop_func op_117a_4_ff; -extern cpuop_func op_117b_4_nf; -extern cpuop_func op_117b_4_ff; -extern cpuop_func op_117c_4_nf; -extern cpuop_func op_117c_4_ff; -extern cpuop_func op_1180_4_nf; -extern cpuop_func op_1180_4_ff; -extern cpuop_func op_1188_4_nf; -extern cpuop_func op_1188_4_ff; -extern cpuop_func op_1190_4_nf; -extern cpuop_func op_1190_4_ff; -extern cpuop_func op_1198_4_nf; -extern cpuop_func op_1198_4_ff; -extern cpuop_func op_11a0_4_nf; -extern cpuop_func op_11a0_4_ff; -extern cpuop_func op_11a8_4_nf; -extern cpuop_func op_11a8_4_ff; -extern cpuop_func op_11b0_4_nf; -extern cpuop_func op_11b0_4_ff; -extern cpuop_func op_11b8_4_nf; -extern cpuop_func op_11b8_4_ff; -extern cpuop_func op_11b9_4_nf; -extern cpuop_func op_11b9_4_ff; -extern cpuop_func op_11ba_4_nf; -extern cpuop_func op_11ba_4_ff; -extern cpuop_func op_11bb_4_nf; -extern cpuop_func op_11bb_4_ff; -extern cpuop_func op_11bc_4_nf; -extern cpuop_func op_11bc_4_ff; -extern cpuop_func op_11c0_4_nf; -extern cpuop_func op_11c0_4_ff; -extern cpuop_func op_11c8_4_nf; -extern cpuop_func op_11c8_4_ff; -extern cpuop_func op_11d0_4_nf; -extern cpuop_func op_11d0_4_ff; -extern cpuop_func op_11d8_4_nf; -extern cpuop_func op_11d8_4_ff; -extern cpuop_func op_11e0_4_nf; -extern cpuop_func op_11e0_4_ff; -extern cpuop_func op_11e8_4_nf; -extern cpuop_func op_11e8_4_ff; -extern cpuop_func op_11f0_4_nf; -extern cpuop_func op_11f0_4_ff; -extern cpuop_func op_11f8_4_nf; -extern cpuop_func op_11f8_4_ff; -extern cpuop_func op_11f9_4_nf; -extern cpuop_func op_11f9_4_ff; -extern cpuop_func op_11fa_4_nf; -extern cpuop_func op_11fa_4_ff; -extern cpuop_func op_11fb_4_nf; -extern cpuop_func op_11fb_4_ff; -extern cpuop_func op_11fc_4_nf; -extern cpuop_func op_11fc_4_ff; -extern cpuop_func op_13c0_4_nf; -extern cpuop_func op_13c0_4_ff; -extern cpuop_func op_13c8_4_nf; -extern cpuop_func op_13c8_4_ff; -extern cpuop_func op_13d0_4_nf; -extern cpuop_func op_13d0_4_ff; -extern cpuop_func op_13d8_4_nf; -extern cpuop_func op_13d8_4_ff; -extern cpuop_func op_13e0_4_nf; -extern cpuop_func op_13e0_4_ff; -extern cpuop_func op_13e8_4_nf; -extern cpuop_func op_13e8_4_ff; -extern cpuop_func op_13f0_4_nf; -extern cpuop_func op_13f0_4_ff; -extern cpuop_func op_13f8_4_nf; -extern cpuop_func op_13f8_4_ff; -extern cpuop_func op_13f9_4_nf; -extern cpuop_func op_13f9_4_ff; -extern cpuop_func op_13fa_4_nf; -extern cpuop_func op_13fa_4_ff; -extern cpuop_func op_13fb_4_nf; -extern cpuop_func op_13fb_4_ff; -extern cpuop_func op_13fc_4_nf; -extern cpuop_func op_13fc_4_ff; -extern cpuop_func op_2000_4_nf; -extern cpuop_func op_2000_4_ff; -extern cpuop_func op_2008_4_nf; -extern cpuop_func op_2008_4_ff; -extern cpuop_func op_2010_4_nf; -extern cpuop_func op_2010_4_ff; -extern cpuop_func op_2018_4_nf; -extern cpuop_func op_2018_4_ff; -extern cpuop_func op_2020_4_nf; -extern cpuop_func op_2020_4_ff; -extern cpuop_func op_2028_4_nf; -extern cpuop_func op_2028_4_ff; -extern cpuop_func op_2030_4_nf; -extern cpuop_func op_2030_4_ff; -extern cpuop_func op_2038_4_nf; -extern cpuop_func op_2038_4_ff; -extern cpuop_func op_2039_4_nf; -extern cpuop_func op_2039_4_ff; -extern cpuop_func op_203a_4_nf; -extern cpuop_func op_203a_4_ff; -extern cpuop_func op_203b_4_nf; -extern cpuop_func op_203b_4_ff; -extern cpuop_func op_203c_4_nf; -extern cpuop_func op_203c_4_ff; -extern cpuop_func op_2040_4_nf; -extern cpuop_func op_2040_4_ff; -extern cpuop_func op_2048_4_nf; -extern cpuop_func op_2048_4_ff; -extern cpuop_func op_2050_4_nf; -extern cpuop_func op_2050_4_ff; -extern cpuop_func op_2058_4_nf; -extern cpuop_func op_2058_4_ff; -extern cpuop_func op_2060_4_nf; -extern cpuop_func op_2060_4_ff; -extern cpuop_func op_2068_4_nf; -extern cpuop_func op_2068_4_ff; -extern cpuop_func op_2070_4_nf; -extern cpuop_func op_2070_4_ff; -extern cpuop_func op_2078_4_nf; -extern cpuop_func op_2078_4_ff; -extern cpuop_func op_2079_4_nf; -extern cpuop_func op_2079_4_ff; -extern cpuop_func op_207a_4_nf; -extern cpuop_func op_207a_4_ff; -extern cpuop_func op_207b_4_nf; -extern cpuop_func op_207b_4_ff; -extern cpuop_func op_207c_4_nf; -extern cpuop_func op_207c_4_ff; -extern cpuop_func op_2080_4_nf; -extern cpuop_func op_2080_4_ff; -extern cpuop_func op_2088_4_nf; -extern cpuop_func op_2088_4_ff; -extern cpuop_func op_2090_4_nf; -extern cpuop_func op_2090_4_ff; -extern cpuop_func op_2098_4_nf; -extern cpuop_func op_2098_4_ff; -extern cpuop_func op_20a0_4_nf; -extern cpuop_func op_20a0_4_ff; -extern cpuop_func op_20a8_4_nf; -extern cpuop_func op_20a8_4_ff; -extern cpuop_func op_20b0_4_nf; -extern cpuop_func op_20b0_4_ff; -extern cpuop_func op_20b8_4_nf; -extern cpuop_func op_20b8_4_ff; -extern cpuop_func op_20b9_4_nf; -extern cpuop_func op_20b9_4_ff; -extern cpuop_func op_20ba_4_nf; -extern cpuop_func op_20ba_4_ff; -extern cpuop_func op_20bb_4_nf; -extern cpuop_func op_20bb_4_ff; -extern cpuop_func op_20bc_4_nf; -extern cpuop_func op_20bc_4_ff; -extern cpuop_func op_20c0_4_nf; -extern cpuop_func op_20c0_4_ff; -extern cpuop_func op_20c8_4_nf; -extern cpuop_func op_20c8_4_ff; -extern cpuop_func op_20d0_4_nf; -extern cpuop_func op_20d0_4_ff; -extern cpuop_func op_20d8_4_nf; -extern cpuop_func op_20d8_4_ff; -extern cpuop_func op_20e0_4_nf; -extern cpuop_func op_20e0_4_ff; -extern cpuop_func op_20e8_4_nf; -extern cpuop_func op_20e8_4_ff; -extern cpuop_func op_20f0_4_nf; -extern cpuop_func op_20f0_4_ff; -extern cpuop_func op_20f8_4_nf; -extern cpuop_func op_20f8_4_ff; -extern cpuop_func op_20f9_4_nf; -extern cpuop_func op_20f9_4_ff; -extern cpuop_func op_20fa_4_nf; -extern cpuop_func op_20fa_4_ff; -extern cpuop_func op_20fb_4_nf; -extern cpuop_func op_20fb_4_ff; -extern cpuop_func op_20fc_4_nf; -extern cpuop_func op_20fc_4_ff; -extern cpuop_func op_2100_4_nf; -extern cpuop_func op_2100_4_ff; -extern cpuop_func op_2108_4_nf; -extern cpuop_func op_2108_4_ff; -extern cpuop_func op_2110_4_nf; -extern cpuop_func op_2110_4_ff; -extern cpuop_func op_2118_4_nf; -extern cpuop_func op_2118_4_ff; -extern cpuop_func op_2120_4_nf; -extern cpuop_func op_2120_4_ff; -extern cpuop_func op_2128_4_nf; -extern cpuop_func op_2128_4_ff; -extern cpuop_func op_2130_4_nf; -extern cpuop_func op_2130_4_ff; -extern cpuop_func op_2138_4_nf; -extern cpuop_func op_2138_4_ff; -extern cpuop_func op_2139_4_nf; -extern cpuop_func op_2139_4_ff; -extern cpuop_func op_213a_4_nf; -extern cpuop_func op_213a_4_ff; -extern cpuop_func op_213b_4_nf; -extern cpuop_func op_213b_4_ff; -extern cpuop_func op_213c_4_nf; -extern cpuop_func op_213c_4_ff; -extern cpuop_func op_2140_4_nf; -extern cpuop_func op_2140_4_ff; -extern cpuop_func op_2148_4_nf; -extern cpuop_func op_2148_4_ff; -extern cpuop_func op_2150_4_nf; -extern cpuop_func op_2150_4_ff; -extern cpuop_func op_2158_4_nf; -extern cpuop_func op_2158_4_ff; -extern cpuop_func op_2160_4_nf; -extern cpuop_func op_2160_4_ff; -extern cpuop_func op_2168_4_nf; -extern cpuop_func op_2168_4_ff; -extern cpuop_func op_2170_4_nf; -extern cpuop_func op_2170_4_ff; -extern cpuop_func op_2178_4_nf; -extern cpuop_func op_2178_4_ff; -extern cpuop_func op_2179_4_nf; -extern cpuop_func op_2179_4_ff; -extern cpuop_func op_217a_4_nf; -extern cpuop_func op_217a_4_ff; -extern cpuop_func op_217b_4_nf; -extern cpuop_func op_217b_4_ff; -extern cpuop_func op_217c_4_nf; -extern cpuop_func op_217c_4_ff; -extern cpuop_func op_2180_4_nf; -extern cpuop_func op_2180_4_ff; -extern cpuop_func op_2188_4_nf; -extern cpuop_func op_2188_4_ff; -extern cpuop_func op_2190_4_nf; -extern cpuop_func op_2190_4_ff; -extern cpuop_func op_2198_4_nf; -extern cpuop_func op_2198_4_ff; -extern cpuop_func op_21a0_4_nf; -extern cpuop_func op_21a0_4_ff; -extern cpuop_func op_21a8_4_nf; -extern cpuop_func op_21a8_4_ff; -extern cpuop_func op_21b0_4_nf; -extern cpuop_func op_21b0_4_ff; -extern cpuop_func op_21b8_4_nf; -extern cpuop_func op_21b8_4_ff; -extern cpuop_func op_21b9_4_nf; -extern cpuop_func op_21b9_4_ff; -extern cpuop_func op_21ba_4_nf; -extern cpuop_func op_21ba_4_ff; -extern cpuop_func op_21bb_4_nf; -extern cpuop_func op_21bb_4_ff; -extern cpuop_func op_21bc_4_nf; -extern cpuop_func op_21bc_4_ff; -extern cpuop_func op_21c0_4_nf; -extern cpuop_func op_21c0_4_ff; -extern cpuop_func op_21c8_4_nf; -extern cpuop_func op_21c8_4_ff; -extern cpuop_func op_21d0_4_nf; -extern cpuop_func op_21d0_4_ff; -extern cpuop_func op_21d8_4_nf; -extern cpuop_func op_21d8_4_ff; -extern cpuop_func op_21e0_4_nf; -extern cpuop_func op_21e0_4_ff; -extern cpuop_func op_21e8_4_nf; -extern cpuop_func op_21e8_4_ff; -extern cpuop_func op_21f0_4_nf; -extern cpuop_func op_21f0_4_ff; -extern cpuop_func op_21f8_4_nf; -extern cpuop_func op_21f8_4_ff; -extern cpuop_func op_21f9_4_nf; -extern cpuop_func op_21f9_4_ff; -extern cpuop_func op_21fa_4_nf; -extern cpuop_func op_21fa_4_ff; -extern cpuop_func op_21fb_4_nf; -extern cpuop_func op_21fb_4_ff; -extern cpuop_func op_21fc_4_nf; -extern cpuop_func op_21fc_4_ff; -extern cpuop_func op_23c0_4_nf; -extern cpuop_func op_23c0_4_ff; -extern cpuop_func op_23c8_4_nf; -extern cpuop_func op_23c8_4_ff; -extern cpuop_func op_23d0_4_nf; -extern cpuop_func op_23d0_4_ff; -extern cpuop_func op_23d8_4_nf; -extern cpuop_func op_23d8_4_ff; -extern cpuop_func op_23e0_4_nf; -extern cpuop_func op_23e0_4_ff; -extern cpuop_func op_23e8_4_nf; -extern cpuop_func op_23e8_4_ff; -extern cpuop_func op_23f0_4_nf; -extern cpuop_func op_23f0_4_ff; -extern cpuop_func op_23f8_4_nf; -extern cpuop_func op_23f8_4_ff; -extern cpuop_func op_23f9_4_nf; -extern cpuop_func op_23f9_4_ff; -extern cpuop_func op_23fa_4_nf; -extern cpuop_func op_23fa_4_ff; -extern cpuop_func op_23fb_4_nf; -extern cpuop_func op_23fb_4_ff; -extern cpuop_func op_23fc_4_nf; -extern cpuop_func op_23fc_4_ff; -extern cpuop_func op_3000_4_nf; -extern cpuop_func op_3000_4_ff; -extern cpuop_func op_3008_4_nf; -extern cpuop_func op_3008_4_ff; -extern cpuop_func op_3010_4_nf; -extern cpuop_func op_3010_4_ff; -extern cpuop_func op_3018_4_nf; -extern cpuop_func op_3018_4_ff; -extern cpuop_func op_3020_4_nf; -extern cpuop_func op_3020_4_ff; -extern cpuop_func op_3028_4_nf; -extern cpuop_func op_3028_4_ff; -extern cpuop_func op_3030_4_nf; -extern cpuop_func op_3030_4_ff; -extern cpuop_func op_3038_4_nf; -extern cpuop_func op_3038_4_ff; -extern cpuop_func op_3039_4_nf; -extern cpuop_func op_3039_4_ff; -extern cpuop_func op_303a_4_nf; -extern cpuop_func op_303a_4_ff; -extern cpuop_func op_303b_4_nf; -extern cpuop_func op_303b_4_ff; -extern cpuop_func op_303c_4_nf; -extern cpuop_func op_303c_4_ff; -extern cpuop_func op_3040_4_nf; -extern cpuop_func op_3040_4_ff; -extern cpuop_func op_3048_4_nf; -extern cpuop_func op_3048_4_ff; -extern cpuop_func op_3050_4_nf; -extern cpuop_func op_3050_4_ff; -extern cpuop_func op_3058_4_nf; -extern cpuop_func op_3058_4_ff; -extern cpuop_func op_3060_4_nf; -extern cpuop_func op_3060_4_ff; -extern cpuop_func op_3068_4_nf; -extern cpuop_func op_3068_4_ff; -extern cpuop_func op_3070_4_nf; -extern cpuop_func op_3070_4_ff; -extern cpuop_func op_3078_4_nf; -extern cpuop_func op_3078_4_ff; -extern cpuop_func op_3079_4_nf; -extern cpuop_func op_3079_4_ff; -extern cpuop_func op_307a_4_nf; -extern cpuop_func op_307a_4_ff; -extern cpuop_func op_307b_4_nf; -extern cpuop_func op_307b_4_ff; -extern cpuop_func op_307c_4_nf; -extern cpuop_func op_307c_4_ff; -extern cpuop_func op_3080_4_nf; -extern cpuop_func op_3080_4_ff; -extern cpuop_func op_3088_4_nf; -extern cpuop_func op_3088_4_ff; -extern cpuop_func op_3090_4_nf; -extern cpuop_func op_3090_4_ff; -extern cpuop_func op_3098_4_nf; -extern cpuop_func op_3098_4_ff; -extern cpuop_func op_30a0_4_nf; -extern cpuop_func op_30a0_4_ff; -extern cpuop_func op_30a8_4_nf; -extern cpuop_func op_30a8_4_ff; -extern cpuop_func op_30b0_4_nf; -extern cpuop_func op_30b0_4_ff; -extern cpuop_func op_30b8_4_nf; -extern cpuop_func op_30b8_4_ff; -extern cpuop_func op_30b9_4_nf; -extern cpuop_func op_30b9_4_ff; -extern cpuop_func op_30ba_4_nf; -extern cpuop_func op_30ba_4_ff; -extern cpuop_func op_30bb_4_nf; -extern cpuop_func op_30bb_4_ff; -extern cpuop_func op_30bc_4_nf; -extern cpuop_func op_30bc_4_ff; -extern cpuop_func op_30c0_4_nf; -extern cpuop_func op_30c0_4_ff; -extern cpuop_func op_30c8_4_nf; -extern cpuop_func op_30c8_4_ff; -extern cpuop_func op_30d0_4_nf; -extern cpuop_func op_30d0_4_ff; -extern cpuop_func op_30d8_4_nf; -extern cpuop_func op_30d8_4_ff; -extern cpuop_func op_30e0_4_nf; -extern cpuop_func op_30e0_4_ff; -extern cpuop_func op_30e8_4_nf; -extern cpuop_func op_30e8_4_ff; -extern cpuop_func op_30f0_4_nf; -extern cpuop_func op_30f0_4_ff; -extern cpuop_func op_30f8_4_nf; -extern cpuop_func op_30f8_4_ff; -extern cpuop_func op_30f9_4_nf; -extern cpuop_func op_30f9_4_ff; -extern cpuop_func op_30fa_4_nf; -extern cpuop_func op_30fa_4_ff; -extern cpuop_func op_30fb_4_nf; -extern cpuop_func op_30fb_4_ff; -extern cpuop_func op_30fc_4_nf; -extern cpuop_func op_30fc_4_ff; -extern cpuop_func op_3100_4_nf; -extern cpuop_func op_3100_4_ff; -extern cpuop_func op_3108_4_nf; -extern cpuop_func op_3108_4_ff; -extern cpuop_func op_3110_4_nf; -extern cpuop_func op_3110_4_ff; -extern cpuop_func op_3118_4_nf; -extern cpuop_func op_3118_4_ff; -extern cpuop_func op_3120_4_nf; -extern cpuop_func op_3120_4_ff; -extern cpuop_func op_3128_4_nf; -extern cpuop_func op_3128_4_ff; -extern cpuop_func op_3130_4_nf; -extern cpuop_func op_3130_4_ff; -extern cpuop_func op_3138_4_nf; -extern cpuop_func op_3138_4_ff; -extern cpuop_func op_3139_4_nf; -extern cpuop_func op_3139_4_ff; -extern cpuop_func op_313a_4_nf; -extern cpuop_func op_313a_4_ff; -extern cpuop_func op_313b_4_nf; -extern cpuop_func op_313b_4_ff; -extern cpuop_func op_313c_4_nf; -extern cpuop_func op_313c_4_ff; -extern cpuop_func op_3140_4_nf; -extern cpuop_func op_3140_4_ff; -extern cpuop_func op_3148_4_nf; -extern cpuop_func op_3148_4_ff; -extern cpuop_func op_3150_4_nf; -extern cpuop_func op_3150_4_ff; -extern cpuop_func op_3158_4_nf; -extern cpuop_func op_3158_4_ff; -extern cpuop_func op_3160_4_nf; -extern cpuop_func op_3160_4_ff; -extern cpuop_func op_3168_4_nf; -extern cpuop_func op_3168_4_ff; -extern cpuop_func op_3170_4_nf; -extern cpuop_func op_3170_4_ff; -extern cpuop_func op_3178_4_nf; -extern cpuop_func op_3178_4_ff; -extern cpuop_func op_3179_4_nf; -extern cpuop_func op_3179_4_ff; -extern cpuop_func op_317a_4_nf; -extern cpuop_func op_317a_4_ff; -extern cpuop_func op_317b_4_nf; -extern cpuop_func op_317b_4_ff; -extern cpuop_func op_317c_4_nf; -extern cpuop_func op_317c_4_ff; -extern cpuop_func op_3180_4_nf; -extern cpuop_func op_3180_4_ff; -extern cpuop_func op_3188_4_nf; -extern cpuop_func op_3188_4_ff; -extern cpuop_func op_3190_4_nf; -extern cpuop_func op_3190_4_ff; -extern cpuop_func op_3198_4_nf; -extern cpuop_func op_3198_4_ff; -extern cpuop_func op_31a0_4_nf; -extern cpuop_func op_31a0_4_ff; -extern cpuop_func op_31a8_4_nf; -extern cpuop_func op_31a8_4_ff; -extern cpuop_func op_31b0_4_nf; -extern cpuop_func op_31b0_4_ff; -extern cpuop_func op_31b8_4_nf; -extern cpuop_func op_31b8_4_ff; -extern cpuop_func op_31b9_4_nf; -extern cpuop_func op_31b9_4_ff; -extern cpuop_func op_31ba_4_nf; -extern cpuop_func op_31ba_4_ff; -extern cpuop_func op_31bb_4_nf; -extern cpuop_func op_31bb_4_ff; -extern cpuop_func op_31bc_4_nf; -extern cpuop_func op_31bc_4_ff; -extern cpuop_func op_31c0_4_nf; -extern cpuop_func op_31c0_4_ff; -extern cpuop_func op_31c8_4_nf; -extern cpuop_func op_31c8_4_ff; -extern cpuop_func op_31d0_4_nf; -extern cpuop_func op_31d0_4_ff; -extern cpuop_func op_31d8_4_nf; -extern cpuop_func op_31d8_4_ff; -extern cpuop_func op_31e0_4_nf; -extern cpuop_func op_31e0_4_ff; -extern cpuop_func op_31e8_4_nf; -extern cpuop_func op_31e8_4_ff; -extern cpuop_func op_31f0_4_nf; -extern cpuop_func op_31f0_4_ff; -extern cpuop_func op_31f8_4_nf; -extern cpuop_func op_31f8_4_ff; -extern cpuop_func op_31f9_4_nf; -extern cpuop_func op_31f9_4_ff; -extern cpuop_func op_31fa_4_nf; -extern cpuop_func op_31fa_4_ff; -extern cpuop_func op_31fb_4_nf; -extern cpuop_func op_31fb_4_ff; -extern cpuop_func op_31fc_4_nf; -extern cpuop_func op_31fc_4_ff; -extern cpuop_func op_33c0_4_nf; -extern cpuop_func op_33c0_4_ff; -extern cpuop_func op_33c8_4_nf; -extern cpuop_func op_33c8_4_ff; -extern cpuop_func op_33d0_4_nf; -extern cpuop_func op_33d0_4_ff; -extern cpuop_func op_33d8_4_nf; -extern cpuop_func op_33d8_4_ff; -extern cpuop_func op_33e0_4_nf; -extern cpuop_func op_33e0_4_ff; -extern cpuop_func op_33e8_4_nf; -extern cpuop_func op_33e8_4_ff; -extern cpuop_func op_33f0_4_nf; -extern cpuop_func op_33f0_4_ff; -extern cpuop_func op_33f8_4_nf; -extern cpuop_func op_33f8_4_ff; -extern cpuop_func op_33f9_4_nf; -extern cpuop_func op_33f9_4_ff; -extern cpuop_func op_33fa_4_nf; -extern cpuop_func op_33fa_4_ff; -extern cpuop_func op_33fb_4_nf; -extern cpuop_func op_33fb_4_ff; -extern cpuop_func op_33fc_4_nf; -extern cpuop_func op_33fc_4_ff; -extern cpuop_func op_4000_4_nf; -extern cpuop_func op_4000_4_ff; -extern cpuop_func op_4010_4_nf; -extern cpuop_func op_4010_4_ff; -extern cpuop_func op_4018_4_nf; -extern cpuop_func op_4018_4_ff; -extern cpuop_func op_4020_4_nf; -extern cpuop_func op_4020_4_ff; -extern cpuop_func op_4028_4_nf; -extern cpuop_func op_4028_4_ff; -extern cpuop_func op_4030_4_nf; -extern cpuop_func op_4030_4_ff; -extern cpuop_func op_4038_4_nf; -extern cpuop_func op_4038_4_ff; -extern cpuop_func op_4039_4_nf; -extern cpuop_func op_4039_4_ff; -extern cpuop_func op_4040_4_nf; -extern cpuop_func op_4040_4_ff; -extern cpuop_func op_4050_4_nf; -extern cpuop_func op_4050_4_ff; -extern cpuop_func op_4058_4_nf; -extern cpuop_func op_4058_4_ff; -extern cpuop_func op_4060_4_nf; -extern cpuop_func op_4060_4_ff; -extern cpuop_func op_4068_4_nf; -extern cpuop_func op_4068_4_ff; -extern cpuop_func op_4070_4_nf; -extern cpuop_func op_4070_4_ff; -extern cpuop_func op_4078_4_nf; -extern cpuop_func op_4078_4_ff; -extern cpuop_func op_4079_4_nf; -extern cpuop_func op_4079_4_ff; -extern cpuop_func op_4080_4_nf; -extern cpuop_func op_4080_4_ff; -extern cpuop_func op_4090_4_nf; -extern cpuop_func op_4090_4_ff; -extern cpuop_func op_4098_4_nf; -extern cpuop_func op_4098_4_ff; -extern cpuop_func op_40a0_4_nf; -extern cpuop_func op_40a0_4_ff; -extern cpuop_func op_40a8_4_nf; -extern cpuop_func op_40a8_4_ff; -extern cpuop_func op_40b0_4_nf; -extern cpuop_func op_40b0_4_ff; -extern cpuop_func op_40b8_4_nf; -extern cpuop_func op_40b8_4_ff; -extern cpuop_func op_40b9_4_nf; -extern cpuop_func op_40b9_4_ff; -extern cpuop_func op_40c0_4_nf; -extern cpuop_func op_40c0_4_ff; -extern cpuop_func op_40d0_4_nf; -extern cpuop_func op_40d0_4_ff; -extern cpuop_func op_40d8_4_nf; -extern cpuop_func op_40d8_4_ff; -extern cpuop_func op_40e0_4_nf; -extern cpuop_func op_40e0_4_ff; -extern cpuop_func op_40e8_4_nf; -extern cpuop_func op_40e8_4_ff; -extern cpuop_func op_40f0_4_nf; -extern cpuop_func op_40f0_4_ff; -extern cpuop_func op_40f8_4_nf; -extern cpuop_func op_40f8_4_ff; -extern cpuop_func op_40f9_4_nf; -extern cpuop_func op_40f9_4_ff; -extern cpuop_func op_4180_4_nf; -extern cpuop_func op_4180_4_ff; -extern cpuop_func op_4190_4_nf; -extern cpuop_func op_4190_4_ff; -extern cpuop_func op_4198_4_nf; -extern cpuop_func op_4198_4_ff; -extern cpuop_func op_41a0_4_nf; -extern cpuop_func op_41a0_4_ff; -extern cpuop_func op_41a8_4_nf; -extern cpuop_func op_41a8_4_ff; -extern cpuop_func op_41b0_4_nf; -extern cpuop_func op_41b0_4_ff; -extern cpuop_func op_41b8_4_nf; -extern cpuop_func op_41b8_4_ff; -extern cpuop_func op_41b9_4_nf; -extern cpuop_func op_41b9_4_ff; -extern cpuop_func op_41ba_4_nf; -extern cpuop_func op_41ba_4_ff; -extern cpuop_func op_41bb_4_nf; -extern cpuop_func op_41bb_4_ff; -extern cpuop_func op_41bc_4_nf; -extern cpuop_func op_41bc_4_ff; -extern cpuop_func op_41d0_4_nf; -extern cpuop_func op_41d0_4_ff; -extern cpuop_func op_41e8_4_nf; -extern cpuop_func op_41e8_4_ff; -extern cpuop_func op_41f0_4_nf; -extern cpuop_func op_41f0_4_ff; -extern cpuop_func op_41f8_4_nf; -extern cpuop_func op_41f8_4_ff; -extern cpuop_func op_41f9_4_nf; -extern cpuop_func op_41f9_4_ff; -extern cpuop_func op_41fa_4_nf; -extern cpuop_func op_41fa_4_ff; -extern cpuop_func op_41fb_4_nf; -extern cpuop_func op_41fb_4_ff; -extern cpuop_func op_4200_4_nf; -extern cpuop_func op_4200_4_ff; -extern cpuop_func op_4210_4_nf; -extern cpuop_func op_4210_4_ff; -extern cpuop_func op_4218_4_nf; -extern cpuop_func op_4218_4_ff; -extern cpuop_func op_4220_4_nf; -extern cpuop_func op_4220_4_ff; -extern cpuop_func op_4228_4_nf; -extern cpuop_func op_4228_4_ff; -extern cpuop_func op_4230_4_nf; -extern cpuop_func op_4230_4_ff; -extern cpuop_func op_4238_4_nf; -extern cpuop_func op_4238_4_ff; -extern cpuop_func op_4239_4_nf; -extern cpuop_func op_4239_4_ff; -extern cpuop_func op_4240_4_nf; -extern cpuop_func op_4240_4_ff; -extern cpuop_func op_4250_4_nf; -extern cpuop_func op_4250_4_ff; -extern cpuop_func op_4258_4_nf; -extern cpuop_func op_4258_4_ff; -extern cpuop_func op_4260_4_nf; -extern cpuop_func op_4260_4_ff; -extern cpuop_func op_4268_4_nf; -extern cpuop_func op_4268_4_ff; -extern cpuop_func op_4270_4_nf; -extern cpuop_func op_4270_4_ff; -extern cpuop_func op_4278_4_nf; -extern cpuop_func op_4278_4_ff; -extern cpuop_func op_4279_4_nf; -extern cpuop_func op_4279_4_ff; -extern cpuop_func op_4280_4_nf; -extern cpuop_func op_4280_4_ff; -extern cpuop_func op_4290_4_nf; -extern cpuop_func op_4290_4_ff; -extern cpuop_func op_4298_4_nf; -extern cpuop_func op_4298_4_ff; -extern cpuop_func op_42a0_4_nf; -extern cpuop_func op_42a0_4_ff; -extern cpuop_func op_42a8_4_nf; -extern cpuop_func op_42a8_4_ff; -extern cpuop_func op_42b0_4_nf; -extern cpuop_func op_42b0_4_ff; -extern cpuop_func op_42b8_4_nf; -extern cpuop_func op_42b8_4_ff; -extern cpuop_func op_42b9_4_nf; -extern cpuop_func op_42b9_4_ff; -extern cpuop_func op_4400_4_nf; -extern cpuop_func op_4400_4_ff; -extern cpuop_func op_4410_4_nf; -extern cpuop_func op_4410_4_ff; -extern cpuop_func op_4418_4_nf; -extern cpuop_func op_4418_4_ff; -extern cpuop_func op_4420_4_nf; -extern cpuop_func op_4420_4_ff; -extern cpuop_func op_4428_4_nf; -extern cpuop_func op_4428_4_ff; -extern cpuop_func op_4430_4_nf; -extern cpuop_func op_4430_4_ff; -extern cpuop_func op_4438_4_nf; -extern cpuop_func op_4438_4_ff; -extern cpuop_func op_4439_4_nf; -extern cpuop_func op_4439_4_ff; -extern cpuop_func op_4440_4_nf; -extern cpuop_func op_4440_4_ff; -extern cpuop_func op_4450_4_nf; -extern cpuop_func op_4450_4_ff; -extern cpuop_func op_4458_4_nf; -extern cpuop_func op_4458_4_ff; -extern cpuop_func op_4460_4_nf; -extern cpuop_func op_4460_4_ff; -extern cpuop_func op_4468_4_nf; -extern cpuop_func op_4468_4_ff; -extern cpuop_func op_4470_4_nf; -extern cpuop_func op_4470_4_ff; -extern cpuop_func op_4478_4_nf; -extern cpuop_func op_4478_4_ff; -extern cpuop_func op_4479_4_nf; -extern cpuop_func op_4479_4_ff; -extern cpuop_func op_4480_4_nf; -extern cpuop_func op_4480_4_ff; -extern cpuop_func op_4490_4_nf; -extern cpuop_func op_4490_4_ff; -extern cpuop_func op_4498_4_nf; -extern cpuop_func op_4498_4_ff; -extern cpuop_func op_44a0_4_nf; -extern cpuop_func op_44a0_4_ff; -extern cpuop_func op_44a8_4_nf; -extern cpuop_func op_44a8_4_ff; -extern cpuop_func op_44b0_4_nf; -extern cpuop_func op_44b0_4_ff; -extern cpuop_func op_44b8_4_nf; -extern cpuop_func op_44b8_4_ff; -extern cpuop_func op_44b9_4_nf; -extern cpuop_func op_44b9_4_ff; -extern cpuop_func op_44c0_4_nf; -extern cpuop_func op_44c0_4_ff; -extern cpuop_func op_44d0_4_nf; -extern cpuop_func op_44d0_4_ff; -extern cpuop_func op_44d8_4_nf; -extern cpuop_func op_44d8_4_ff; -extern cpuop_func op_44e0_4_nf; -extern cpuop_func op_44e0_4_ff; -extern cpuop_func op_44e8_4_nf; -extern cpuop_func op_44e8_4_ff; -extern cpuop_func op_44f0_4_nf; -extern cpuop_func op_44f0_4_ff; -extern cpuop_func op_44f8_4_nf; -extern cpuop_func op_44f8_4_ff; -extern cpuop_func op_44f9_4_nf; -extern cpuop_func op_44f9_4_ff; -extern cpuop_func op_44fa_4_nf; -extern cpuop_func op_44fa_4_ff; -extern cpuop_func op_44fb_4_nf; -extern cpuop_func op_44fb_4_ff; -extern cpuop_func op_44fc_4_nf; -extern cpuop_func op_44fc_4_ff; -extern cpuop_func op_4600_4_nf; -extern cpuop_func op_4600_4_ff; -extern cpuop_func op_4610_4_nf; -extern cpuop_func op_4610_4_ff; -extern cpuop_func op_4618_4_nf; -extern cpuop_func op_4618_4_ff; -extern cpuop_func op_4620_4_nf; -extern cpuop_func op_4620_4_ff; -extern cpuop_func op_4628_4_nf; -extern cpuop_func op_4628_4_ff; -extern cpuop_func op_4630_4_nf; -extern cpuop_func op_4630_4_ff; -extern cpuop_func op_4638_4_nf; -extern cpuop_func op_4638_4_ff; -extern cpuop_func op_4639_4_nf; -extern cpuop_func op_4639_4_ff; -extern cpuop_func op_4640_4_nf; -extern cpuop_func op_4640_4_ff; -extern cpuop_func op_4650_4_nf; -extern cpuop_func op_4650_4_ff; -extern cpuop_func op_4658_4_nf; -extern cpuop_func op_4658_4_ff; -extern cpuop_func op_4660_4_nf; -extern cpuop_func op_4660_4_ff; -extern cpuop_func op_4668_4_nf; -extern cpuop_func op_4668_4_ff; -extern cpuop_func op_4670_4_nf; -extern cpuop_func op_4670_4_ff; -extern cpuop_func op_4678_4_nf; -extern cpuop_func op_4678_4_ff; -extern cpuop_func op_4679_4_nf; -extern cpuop_func op_4679_4_ff; -extern cpuop_func op_4680_4_nf; -extern cpuop_func op_4680_4_ff; -extern cpuop_func op_4690_4_nf; -extern cpuop_func op_4690_4_ff; -extern cpuop_func op_4698_4_nf; -extern cpuop_func op_4698_4_ff; -extern cpuop_func op_46a0_4_nf; -extern cpuop_func op_46a0_4_ff; -extern cpuop_func op_46a8_4_nf; -extern cpuop_func op_46a8_4_ff; -extern cpuop_func op_46b0_4_nf; -extern cpuop_func op_46b0_4_ff; -extern cpuop_func op_46b8_4_nf; -extern cpuop_func op_46b8_4_ff; -extern cpuop_func op_46b9_4_nf; -extern cpuop_func op_46b9_4_ff; -extern cpuop_func op_46c0_4_nf; -extern cpuop_func op_46c0_4_ff; -extern cpuop_func op_46d0_4_nf; -extern cpuop_func op_46d0_4_ff; -extern cpuop_func op_46d8_4_nf; -extern cpuop_func op_46d8_4_ff; -extern cpuop_func op_46e0_4_nf; -extern cpuop_func op_46e0_4_ff; -extern cpuop_func op_46e8_4_nf; -extern cpuop_func op_46e8_4_ff; -extern cpuop_func op_46f0_4_nf; -extern cpuop_func op_46f0_4_ff; -extern cpuop_func op_46f8_4_nf; -extern cpuop_func op_46f8_4_ff; -extern cpuop_func op_46f9_4_nf; -extern cpuop_func op_46f9_4_ff; -extern cpuop_func op_46fa_4_nf; -extern cpuop_func op_46fa_4_ff; -extern cpuop_func op_46fb_4_nf; -extern cpuop_func op_46fb_4_ff; -extern cpuop_func op_46fc_4_nf; -extern cpuop_func op_46fc_4_ff; -extern cpuop_func op_4800_4_nf; -extern cpuop_func op_4800_4_ff; -extern cpuop_func op_4810_4_nf; -extern cpuop_func op_4810_4_ff; -extern cpuop_func op_4818_4_nf; -extern cpuop_func op_4818_4_ff; -extern cpuop_func op_4820_4_nf; -extern cpuop_func op_4820_4_ff; -extern cpuop_func op_4828_4_nf; -extern cpuop_func op_4828_4_ff; -extern cpuop_func op_4830_4_nf; -extern cpuop_func op_4830_4_ff; -extern cpuop_func op_4838_4_nf; -extern cpuop_func op_4838_4_ff; -extern cpuop_func op_4839_4_nf; -extern cpuop_func op_4839_4_ff; -extern cpuop_func op_4840_4_nf; -extern cpuop_func op_4840_4_ff; -extern cpuop_func op_4850_4_nf; -extern cpuop_func op_4850_4_ff; -extern cpuop_func op_4868_4_nf; -extern cpuop_func op_4868_4_ff; -extern cpuop_func op_4870_4_nf; -extern cpuop_func op_4870_4_ff; -extern cpuop_func op_4878_4_nf; -extern cpuop_func op_4878_4_ff; -extern cpuop_func op_4879_4_nf; -extern cpuop_func op_4879_4_ff; -extern cpuop_func op_487a_4_nf; -extern cpuop_func op_487a_4_ff; -extern cpuop_func op_487b_4_nf; -extern cpuop_func op_487b_4_ff; -extern cpuop_func op_4880_4_nf; -extern cpuop_func op_4880_4_ff; -extern cpuop_func op_4890_4_nf; -extern cpuop_func op_4890_4_ff; -extern cpuop_func op_48a0_4_nf; -extern cpuop_func op_48a0_4_ff; -extern cpuop_func op_48a8_4_nf; -extern cpuop_func op_48a8_4_ff; -extern cpuop_func op_48b0_4_nf; -extern cpuop_func op_48b0_4_ff; -extern cpuop_func op_48b8_4_nf; -extern cpuop_func op_48b8_4_ff; -extern cpuop_func op_48b9_4_nf; -extern cpuop_func op_48b9_4_ff; -extern cpuop_func op_48c0_4_nf; -extern cpuop_func op_48c0_4_ff; -extern cpuop_func op_48d0_4_nf; -extern cpuop_func op_48d0_4_ff; -extern cpuop_func op_48e0_4_nf; -extern cpuop_func op_48e0_4_ff; -extern cpuop_func op_48e8_4_nf; -extern cpuop_func op_48e8_4_ff; -extern cpuop_func op_48f0_4_nf; -extern cpuop_func op_48f0_4_ff; -extern cpuop_func op_48f8_4_nf; -extern cpuop_func op_48f8_4_ff; -extern cpuop_func op_48f9_4_nf; -extern cpuop_func op_48f9_4_ff; -extern cpuop_func op_4a00_4_nf; -extern cpuop_func op_4a00_4_ff; -extern cpuop_func op_4a10_4_nf; -extern cpuop_func op_4a10_4_ff; -extern cpuop_func op_4a18_4_nf; -extern cpuop_func op_4a18_4_ff; -extern cpuop_func op_4a20_4_nf; -extern cpuop_func op_4a20_4_ff; -extern cpuop_func op_4a28_4_nf; -extern cpuop_func op_4a28_4_ff; -extern cpuop_func op_4a30_4_nf; -extern cpuop_func op_4a30_4_ff; -extern cpuop_func op_4a38_4_nf; -extern cpuop_func op_4a38_4_ff; -extern cpuop_func op_4a39_4_nf; -extern cpuop_func op_4a39_4_ff; -extern cpuop_func op_4a3a_4_nf; -extern cpuop_func op_4a3a_4_ff; -extern cpuop_func op_4a3b_4_nf; -extern cpuop_func op_4a3b_4_ff; -extern cpuop_func op_4a3c_4_nf; -extern cpuop_func op_4a3c_4_ff; -extern cpuop_func op_4a40_4_nf; -extern cpuop_func op_4a40_4_ff; -extern cpuop_func op_4a48_4_nf; -extern cpuop_func op_4a48_4_ff; -extern cpuop_func op_4a50_4_nf; -extern cpuop_func op_4a50_4_ff; -extern cpuop_func op_4a58_4_nf; -extern cpuop_func op_4a58_4_ff; -extern cpuop_func op_4a60_4_nf; -extern cpuop_func op_4a60_4_ff; -extern cpuop_func op_4a68_4_nf; -extern cpuop_func op_4a68_4_ff; -extern cpuop_func op_4a70_4_nf; -extern cpuop_func op_4a70_4_ff; -extern cpuop_func op_4a78_4_nf; -extern cpuop_func op_4a78_4_ff; -extern cpuop_func op_4a79_4_nf; -extern cpuop_func op_4a79_4_ff; -extern cpuop_func op_4a7a_4_nf; -extern cpuop_func op_4a7a_4_ff; -extern cpuop_func op_4a7b_4_nf; -extern cpuop_func op_4a7b_4_ff; -extern cpuop_func op_4a7c_4_nf; -extern cpuop_func op_4a7c_4_ff; -extern cpuop_func op_4a80_4_nf; -extern cpuop_func op_4a80_4_ff; -extern cpuop_func op_4a88_4_nf; -extern cpuop_func op_4a88_4_ff; -extern cpuop_func op_4a90_4_nf; -extern cpuop_func op_4a90_4_ff; -extern cpuop_func op_4a98_4_nf; -extern cpuop_func op_4a98_4_ff; -extern cpuop_func op_4aa0_4_nf; -extern cpuop_func op_4aa0_4_ff; -extern cpuop_func op_4aa8_4_nf; -extern cpuop_func op_4aa8_4_ff; -extern cpuop_func op_4ab0_4_nf; -extern cpuop_func op_4ab0_4_ff; -extern cpuop_func op_4ab8_4_nf; -extern cpuop_func op_4ab8_4_ff; -extern cpuop_func op_4ab9_4_nf; -extern cpuop_func op_4ab9_4_ff; -extern cpuop_func op_4aba_4_nf; -extern cpuop_func op_4aba_4_ff; -extern cpuop_func op_4abb_4_nf; -extern cpuop_func op_4abb_4_ff; -extern cpuop_func op_4abc_4_nf; -extern cpuop_func op_4abc_4_ff; -extern cpuop_func op_4ac0_4_nf; -extern cpuop_func op_4ac0_4_ff; -extern cpuop_func op_4ad0_4_nf; -extern cpuop_func op_4ad0_4_ff; -extern cpuop_func op_4ad8_4_nf; -extern cpuop_func op_4ad8_4_ff; -extern cpuop_func op_4ae0_4_nf; -extern cpuop_func op_4ae0_4_ff; -extern cpuop_func op_4ae8_4_nf; -extern cpuop_func op_4ae8_4_ff; -extern cpuop_func op_4af0_4_nf; -extern cpuop_func op_4af0_4_ff; -extern cpuop_func op_4af8_4_nf; -extern cpuop_func op_4af8_4_ff; -extern cpuop_func op_4af9_4_nf; -extern cpuop_func op_4af9_4_ff; -extern cpuop_func op_4c90_4_nf; -extern cpuop_func op_4c90_4_ff; -extern cpuop_func op_4c98_4_nf; -extern cpuop_func op_4c98_4_ff; -extern cpuop_func op_4ca8_4_nf; -extern cpuop_func op_4ca8_4_ff; -extern cpuop_func op_4cb0_4_nf; -extern cpuop_func op_4cb0_4_ff; -extern cpuop_func op_4cb8_4_nf; -extern cpuop_func op_4cb8_4_ff; -extern cpuop_func op_4cb9_4_nf; -extern cpuop_func op_4cb9_4_ff; -extern cpuop_func op_4cba_4_nf; -extern cpuop_func op_4cba_4_ff; -extern cpuop_func op_4cbb_4_nf; -extern cpuop_func op_4cbb_4_ff; -extern cpuop_func op_4cd0_4_nf; -extern cpuop_func op_4cd0_4_ff; -extern cpuop_func op_4cd8_4_nf; -extern cpuop_func op_4cd8_4_ff; -extern cpuop_func op_4ce8_4_nf; -extern cpuop_func op_4ce8_4_ff; -extern cpuop_func op_4cf0_4_nf; -extern cpuop_func op_4cf0_4_ff; -extern cpuop_func op_4cf8_4_nf; -extern cpuop_func op_4cf8_4_ff; -extern cpuop_func op_4cf9_4_nf; -extern cpuop_func op_4cf9_4_ff; -extern cpuop_func op_4cfa_4_nf; -extern cpuop_func op_4cfa_4_ff; -extern cpuop_func op_4cfb_4_nf; -extern cpuop_func op_4cfb_4_ff; -extern cpuop_func op_4e40_4_nf; -extern cpuop_func op_4e40_4_ff; -extern cpuop_func op_4e50_4_nf; -extern cpuop_func op_4e50_4_ff; -extern cpuop_func op_4e58_4_nf; -extern cpuop_func op_4e58_4_ff; -extern cpuop_func op_4e60_4_nf; -extern cpuop_func op_4e60_4_ff; -extern cpuop_func op_4e68_4_nf; -extern cpuop_func op_4e68_4_ff; -extern cpuop_func op_4e70_4_nf; -extern cpuop_func op_4e70_4_ff; -extern cpuop_func op_4e71_4_nf; -extern cpuop_func op_4e71_4_ff; -extern cpuop_func op_4e72_4_nf; -extern cpuop_func op_4e72_4_ff; -extern cpuop_func op_4e73_4_nf; -extern cpuop_func op_4e73_4_ff; -extern cpuop_func op_4e74_4_nf; -extern cpuop_func op_4e74_4_ff; -extern cpuop_func op_4e75_4_nf; -extern cpuop_func op_4e75_4_ff; -extern cpuop_func op_4e76_4_nf; -extern cpuop_func op_4e76_4_ff; -extern cpuop_func op_4e77_4_nf; -extern cpuop_func op_4e77_4_ff; -extern cpuop_func op_4e90_4_nf; -extern cpuop_func op_4e90_4_ff; -extern cpuop_func op_4ea8_4_nf; -extern cpuop_func op_4ea8_4_ff; -extern cpuop_func op_4eb0_4_nf; -extern cpuop_func op_4eb0_4_ff; -extern cpuop_func op_4eb8_4_nf; -extern cpuop_func op_4eb8_4_ff; -extern cpuop_func op_4eb9_4_nf; -extern cpuop_func op_4eb9_4_ff; -extern cpuop_func op_4eba_4_nf; -extern cpuop_func op_4eba_4_ff; -extern cpuop_func op_4ebb_4_nf; -extern cpuop_func op_4ebb_4_ff; -extern cpuop_func op_4ed0_4_nf; -extern cpuop_func op_4ed0_4_ff; -extern cpuop_func op_4ee8_4_nf; -extern cpuop_func op_4ee8_4_ff; -extern cpuop_func op_4ef0_4_nf; -extern cpuop_func op_4ef0_4_ff; -extern cpuop_func op_4ef8_4_nf; -extern cpuop_func op_4ef8_4_ff; -extern cpuop_func op_4ef9_4_nf; -extern cpuop_func op_4ef9_4_ff; -extern cpuop_func op_4efa_4_nf; -extern cpuop_func op_4efa_4_ff; -extern cpuop_func op_4efb_4_nf; -extern cpuop_func op_4efb_4_ff; -extern cpuop_func op_5000_4_nf; -extern cpuop_func op_5000_4_ff; -extern cpuop_func op_5010_4_nf; -extern cpuop_func op_5010_4_ff; -extern cpuop_func op_5018_4_nf; -extern cpuop_func op_5018_4_ff; -extern cpuop_func op_5020_4_nf; -extern cpuop_func op_5020_4_ff; -extern cpuop_func op_5028_4_nf; -extern cpuop_func op_5028_4_ff; -extern cpuop_func op_5030_4_nf; -extern cpuop_func op_5030_4_ff; -extern cpuop_func op_5038_4_nf; -extern cpuop_func op_5038_4_ff; -extern cpuop_func op_5039_4_nf; -extern cpuop_func op_5039_4_ff; -extern cpuop_func op_5040_4_nf; -extern cpuop_func op_5040_4_ff; -extern cpuop_func op_5048_4_nf; -extern cpuop_func op_5048_4_ff; -extern cpuop_func op_5050_4_nf; -extern cpuop_func op_5050_4_ff; -extern cpuop_func op_5058_4_nf; -extern cpuop_func op_5058_4_ff; -extern cpuop_func op_5060_4_nf; -extern cpuop_func op_5060_4_ff; -extern cpuop_func op_5068_4_nf; -extern cpuop_func op_5068_4_ff; -extern cpuop_func op_5070_4_nf; -extern cpuop_func op_5070_4_ff; -extern cpuop_func op_5078_4_nf; -extern cpuop_func op_5078_4_ff; -extern cpuop_func op_5079_4_nf; -extern cpuop_func op_5079_4_ff; -extern cpuop_func op_5080_4_nf; -extern cpuop_func op_5080_4_ff; -extern cpuop_func op_5088_4_nf; -extern cpuop_func op_5088_4_ff; -extern cpuop_func op_5090_4_nf; -extern cpuop_func op_5090_4_ff; -extern cpuop_func op_5098_4_nf; -extern cpuop_func op_5098_4_ff; -extern cpuop_func op_50a0_4_nf; -extern cpuop_func op_50a0_4_ff; -extern cpuop_func op_50a8_4_nf; -extern cpuop_func op_50a8_4_ff; -extern cpuop_func op_50b0_4_nf; -extern cpuop_func op_50b0_4_ff; -extern cpuop_func op_50b8_4_nf; -extern cpuop_func op_50b8_4_ff; -extern cpuop_func op_50b9_4_nf; -extern cpuop_func op_50b9_4_ff; -extern cpuop_func op_50c0_4_nf; -extern cpuop_func op_50c0_4_ff; -extern cpuop_func op_50c8_4_nf; -extern cpuop_func op_50c8_4_ff; -extern cpuop_func op_50d0_4_nf; -extern cpuop_func op_50d0_4_ff; -extern cpuop_func op_50d8_4_nf; -extern cpuop_func op_50d8_4_ff; -extern cpuop_func op_50e0_4_nf; -extern cpuop_func op_50e0_4_ff; -extern cpuop_func op_50e8_4_nf; -extern cpuop_func op_50e8_4_ff; -extern cpuop_func op_50f0_4_nf; -extern cpuop_func op_50f0_4_ff; -extern cpuop_func op_50f8_4_nf; -extern cpuop_func op_50f8_4_ff; -extern cpuop_func op_50f9_4_nf; -extern cpuop_func op_50f9_4_ff; -extern cpuop_func op_5100_4_nf; -extern cpuop_func op_5100_4_ff; -extern cpuop_func op_5110_4_nf; -extern cpuop_func op_5110_4_ff; -extern cpuop_func op_5118_4_nf; -extern cpuop_func op_5118_4_ff; -extern cpuop_func op_5120_4_nf; -extern cpuop_func op_5120_4_ff; -extern cpuop_func op_5128_4_nf; -extern cpuop_func op_5128_4_ff; -extern cpuop_func op_5130_4_nf; -extern cpuop_func op_5130_4_ff; -extern cpuop_func op_5138_4_nf; -extern cpuop_func op_5138_4_ff; -extern cpuop_func op_5139_4_nf; -extern cpuop_func op_5139_4_ff; -extern cpuop_func op_5140_4_nf; -extern cpuop_func op_5140_4_ff; -extern cpuop_func op_5148_4_nf; -extern cpuop_func op_5148_4_ff; -extern cpuop_func op_5150_4_nf; -extern cpuop_func op_5150_4_ff; -extern cpuop_func op_5158_4_nf; -extern cpuop_func op_5158_4_ff; -extern cpuop_func op_5160_4_nf; -extern cpuop_func op_5160_4_ff; -extern cpuop_func op_5168_4_nf; -extern cpuop_func op_5168_4_ff; -extern cpuop_func op_5170_4_nf; -extern cpuop_func op_5170_4_ff; -extern cpuop_func op_5178_4_nf; -extern cpuop_func op_5178_4_ff; -extern cpuop_func op_5179_4_nf; -extern cpuop_func op_5179_4_ff; -extern cpuop_func op_5180_4_nf; -extern cpuop_func op_5180_4_ff; -extern cpuop_func op_5188_4_nf; -extern cpuop_func op_5188_4_ff; -extern cpuop_func op_5190_4_nf; -extern cpuop_func op_5190_4_ff; -extern cpuop_func op_5198_4_nf; -extern cpuop_func op_5198_4_ff; -extern cpuop_func op_51a0_4_nf; -extern cpuop_func op_51a0_4_ff; -extern cpuop_func op_51a8_4_nf; -extern cpuop_func op_51a8_4_ff; -extern cpuop_func op_51b0_4_nf; -extern cpuop_func op_51b0_4_ff; -extern cpuop_func op_51b8_4_nf; -extern cpuop_func op_51b8_4_ff; -extern cpuop_func op_51b9_4_nf; -extern cpuop_func op_51b9_4_ff; -extern cpuop_func op_51c0_4_nf; -extern cpuop_func op_51c0_4_ff; -extern cpuop_func op_51c8_4_nf; -extern cpuop_func op_51c8_4_ff; -extern cpuop_func op_51d0_4_nf; -extern cpuop_func op_51d0_4_ff; -extern cpuop_func op_51d8_4_nf; -extern cpuop_func op_51d8_4_ff; -extern cpuop_func op_51e0_4_nf; -extern cpuop_func op_51e0_4_ff; -extern cpuop_func op_51e8_4_nf; -extern cpuop_func op_51e8_4_ff; -extern cpuop_func op_51f0_4_nf; -extern cpuop_func op_51f0_4_ff; -extern cpuop_func op_51f8_4_nf; -extern cpuop_func op_51f8_4_ff; -extern cpuop_func op_51f9_4_nf; -extern cpuop_func op_51f9_4_ff; -extern cpuop_func op_52c0_4_nf; -extern cpuop_func op_52c0_4_ff; -extern cpuop_func op_52c8_4_nf; -extern cpuop_func op_52c8_4_ff; -extern cpuop_func op_52d0_4_nf; -extern cpuop_func op_52d0_4_ff; -extern cpuop_func op_52d8_4_nf; -extern cpuop_func op_52d8_4_ff; -extern cpuop_func op_52e0_4_nf; -extern cpuop_func op_52e0_4_ff; -extern cpuop_func op_52e8_4_nf; -extern cpuop_func op_52e8_4_ff; -extern cpuop_func op_52f0_4_nf; -extern cpuop_func op_52f0_4_ff; -extern cpuop_func op_52f8_4_nf; -extern cpuop_func op_52f8_4_ff; -extern cpuop_func op_52f9_4_nf; -extern cpuop_func op_52f9_4_ff; -extern cpuop_func op_53c0_4_nf; -extern cpuop_func op_53c0_4_ff; -extern cpuop_func op_53c8_4_nf; -extern cpuop_func op_53c8_4_ff; -extern cpuop_func op_53d0_4_nf; -extern cpuop_func op_53d0_4_ff; -extern cpuop_func op_53d8_4_nf; -extern cpuop_func op_53d8_4_ff; -extern cpuop_func op_53e0_4_nf; -extern cpuop_func op_53e0_4_ff; -extern cpuop_func op_53e8_4_nf; -extern cpuop_func op_53e8_4_ff; -extern cpuop_func op_53f0_4_nf; -extern cpuop_func op_53f0_4_ff; -extern cpuop_func op_53f8_4_nf; -extern cpuop_func op_53f8_4_ff; -extern cpuop_func op_53f9_4_nf; -extern cpuop_func op_53f9_4_ff; -extern cpuop_func op_54c0_4_nf; -extern cpuop_func op_54c0_4_ff; -extern cpuop_func op_54c8_4_nf; -extern cpuop_func op_54c8_4_ff; -extern cpuop_func op_54d0_4_nf; -extern cpuop_func op_54d0_4_ff; -extern cpuop_func op_54d8_4_nf; -extern cpuop_func op_54d8_4_ff; -extern cpuop_func op_54e0_4_nf; -extern cpuop_func op_54e0_4_ff; -extern cpuop_func op_54e8_4_nf; -extern cpuop_func op_54e8_4_ff; -extern cpuop_func op_54f0_4_nf; -extern cpuop_func op_54f0_4_ff; -extern cpuop_func op_54f8_4_nf; -extern cpuop_func op_54f8_4_ff; -extern cpuop_func op_54f9_4_nf; -extern cpuop_func op_54f9_4_ff; -extern cpuop_func op_55c0_4_nf; -extern cpuop_func op_55c0_4_ff; -extern cpuop_func op_55c8_4_nf; -extern cpuop_func op_55c8_4_ff; -extern cpuop_func op_55d0_4_nf; -extern cpuop_func op_55d0_4_ff; -extern cpuop_func op_55d8_4_nf; -extern cpuop_func op_55d8_4_ff; -extern cpuop_func op_55e0_4_nf; -extern cpuop_func op_55e0_4_ff; -extern cpuop_func op_55e8_4_nf; -extern cpuop_func op_55e8_4_ff; -extern cpuop_func op_55f0_4_nf; -extern cpuop_func op_55f0_4_ff; -extern cpuop_func op_55f8_4_nf; -extern cpuop_func op_55f8_4_ff; -extern cpuop_func op_55f9_4_nf; -extern cpuop_func op_55f9_4_ff; -extern cpuop_func op_56c0_4_nf; -extern cpuop_func op_56c0_4_ff; -extern cpuop_func op_56c8_4_nf; -extern cpuop_func op_56c8_4_ff; -extern cpuop_func op_56d0_4_nf; -extern cpuop_func op_56d0_4_ff; -extern cpuop_func op_56d8_4_nf; -extern cpuop_func op_56d8_4_ff; -extern cpuop_func op_56e0_4_nf; -extern cpuop_func op_56e0_4_ff; -extern cpuop_func op_56e8_4_nf; -extern cpuop_func op_56e8_4_ff; -extern cpuop_func op_56f0_4_nf; -extern cpuop_func op_56f0_4_ff; -extern cpuop_func op_56f8_4_nf; -extern cpuop_func op_56f8_4_ff; -extern cpuop_func op_56f9_4_nf; -extern cpuop_func op_56f9_4_ff; -extern cpuop_func op_57c0_4_nf; -extern cpuop_func op_57c0_4_ff; -extern cpuop_func op_57c8_4_nf; -extern cpuop_func op_57c8_4_ff; -extern cpuop_func op_57d0_4_nf; -extern cpuop_func op_57d0_4_ff; -extern cpuop_func op_57d8_4_nf; -extern cpuop_func op_57d8_4_ff; -extern cpuop_func op_57e0_4_nf; -extern cpuop_func op_57e0_4_ff; -extern cpuop_func op_57e8_4_nf; -extern cpuop_func op_57e8_4_ff; -extern cpuop_func op_57f0_4_nf; -extern cpuop_func op_57f0_4_ff; -extern cpuop_func op_57f8_4_nf; -extern cpuop_func op_57f8_4_ff; -extern cpuop_func op_57f9_4_nf; -extern cpuop_func op_57f9_4_ff; -extern cpuop_func op_58c0_4_nf; -extern cpuop_func op_58c0_4_ff; -extern cpuop_func op_58c8_4_nf; -extern cpuop_func op_58c8_4_ff; -extern cpuop_func op_58d0_4_nf; -extern cpuop_func op_58d0_4_ff; -extern cpuop_func op_58d8_4_nf; -extern cpuop_func op_58d8_4_ff; -extern cpuop_func op_58e0_4_nf; -extern cpuop_func op_58e0_4_ff; -extern cpuop_func op_58e8_4_nf; -extern cpuop_func op_58e8_4_ff; -extern cpuop_func op_58f0_4_nf; -extern cpuop_func op_58f0_4_ff; -extern cpuop_func op_58f8_4_nf; -extern cpuop_func op_58f8_4_ff; -extern cpuop_func op_58f9_4_nf; -extern cpuop_func op_58f9_4_ff; -extern cpuop_func op_59c0_4_nf; -extern cpuop_func op_59c0_4_ff; -extern cpuop_func op_59c8_4_nf; -extern cpuop_func op_59c8_4_ff; -extern cpuop_func op_59d0_4_nf; -extern cpuop_func op_59d0_4_ff; -extern cpuop_func op_59d8_4_nf; -extern cpuop_func op_59d8_4_ff; -extern cpuop_func op_59e0_4_nf; -extern cpuop_func op_59e0_4_ff; -extern cpuop_func op_59e8_4_nf; -extern cpuop_func op_59e8_4_ff; -extern cpuop_func op_59f0_4_nf; -extern cpuop_func op_59f0_4_ff; -extern cpuop_func op_59f8_4_nf; -extern cpuop_func op_59f8_4_ff; -extern cpuop_func op_59f9_4_nf; -extern cpuop_func op_59f9_4_ff; -extern cpuop_func op_5ac0_4_nf; -extern cpuop_func op_5ac0_4_ff; -extern cpuop_func op_5ac8_4_nf; -extern cpuop_func op_5ac8_4_ff; -extern cpuop_func op_5ad0_4_nf; -extern cpuop_func op_5ad0_4_ff; -extern cpuop_func op_5ad8_4_nf; -extern cpuop_func op_5ad8_4_ff; -extern cpuop_func op_5ae0_4_nf; -extern cpuop_func op_5ae0_4_ff; -extern cpuop_func op_5ae8_4_nf; -extern cpuop_func op_5ae8_4_ff; -extern cpuop_func op_5af0_4_nf; -extern cpuop_func op_5af0_4_ff; -extern cpuop_func op_5af8_4_nf; -extern cpuop_func op_5af8_4_ff; -extern cpuop_func op_5af9_4_nf; -extern cpuop_func op_5af9_4_ff; -extern cpuop_func op_5bc0_4_nf; -extern cpuop_func op_5bc0_4_ff; -extern cpuop_func op_5bc8_4_nf; -extern cpuop_func op_5bc8_4_ff; -extern cpuop_func op_5bd0_4_nf; -extern cpuop_func op_5bd0_4_ff; -extern cpuop_func op_5bd8_4_nf; -extern cpuop_func op_5bd8_4_ff; -extern cpuop_func op_5be0_4_nf; -extern cpuop_func op_5be0_4_ff; -extern cpuop_func op_5be8_4_nf; -extern cpuop_func op_5be8_4_ff; -extern cpuop_func op_5bf0_4_nf; -extern cpuop_func op_5bf0_4_ff; -extern cpuop_func op_5bf8_4_nf; -extern cpuop_func op_5bf8_4_ff; -extern cpuop_func op_5bf9_4_nf; -extern cpuop_func op_5bf9_4_ff; -extern cpuop_func op_5cc0_4_nf; -extern cpuop_func op_5cc0_4_ff; -extern cpuop_func op_5cc8_4_nf; -extern cpuop_func op_5cc8_4_ff; -extern cpuop_func op_5cd0_4_nf; -extern cpuop_func op_5cd0_4_ff; -extern cpuop_func op_5cd8_4_nf; -extern cpuop_func op_5cd8_4_ff; -extern cpuop_func op_5ce0_4_nf; -extern cpuop_func op_5ce0_4_ff; -extern cpuop_func op_5ce8_4_nf; -extern cpuop_func op_5ce8_4_ff; -extern cpuop_func op_5cf0_4_nf; -extern cpuop_func op_5cf0_4_ff; -extern cpuop_func op_5cf8_4_nf; -extern cpuop_func op_5cf8_4_ff; -extern cpuop_func op_5cf9_4_nf; -extern cpuop_func op_5cf9_4_ff; -extern cpuop_func op_5dc0_4_nf; -extern cpuop_func op_5dc0_4_ff; -extern cpuop_func op_5dc8_4_nf; -extern cpuop_func op_5dc8_4_ff; -extern cpuop_func op_5dd0_4_nf; -extern cpuop_func op_5dd0_4_ff; -extern cpuop_func op_5dd8_4_nf; -extern cpuop_func op_5dd8_4_ff; -extern cpuop_func op_5de0_4_nf; -extern cpuop_func op_5de0_4_ff; -extern cpuop_func op_5de8_4_nf; -extern cpuop_func op_5de8_4_ff; -extern cpuop_func op_5df0_4_nf; -extern cpuop_func op_5df0_4_ff; -extern cpuop_func op_5df8_4_nf; -extern cpuop_func op_5df8_4_ff; -extern cpuop_func op_5df9_4_nf; -extern cpuop_func op_5df9_4_ff; -extern cpuop_func op_5ec0_4_nf; -extern cpuop_func op_5ec0_4_ff; -extern cpuop_func op_5ec8_4_nf; -extern cpuop_func op_5ec8_4_ff; -extern cpuop_func op_5ed0_4_nf; -extern cpuop_func op_5ed0_4_ff; -extern cpuop_func op_5ed8_4_nf; -extern cpuop_func op_5ed8_4_ff; -extern cpuop_func op_5ee0_4_nf; -extern cpuop_func op_5ee0_4_ff; -extern cpuop_func op_5ee8_4_nf; -extern cpuop_func op_5ee8_4_ff; -extern cpuop_func op_5ef0_4_nf; -extern cpuop_func op_5ef0_4_ff; -extern cpuop_func op_5ef8_4_nf; -extern cpuop_func op_5ef8_4_ff; -extern cpuop_func op_5ef9_4_nf; -extern cpuop_func op_5ef9_4_ff; -extern cpuop_func op_5fc0_4_nf; -extern cpuop_func op_5fc0_4_ff; -extern cpuop_func op_5fc8_4_nf; -extern cpuop_func op_5fc8_4_ff; -extern cpuop_func op_5fd0_4_nf; -extern cpuop_func op_5fd0_4_ff; -extern cpuop_func op_5fd8_4_nf; -extern cpuop_func op_5fd8_4_ff; -extern cpuop_func op_5fe0_4_nf; -extern cpuop_func op_5fe0_4_ff; -extern cpuop_func op_5fe8_4_nf; -extern cpuop_func op_5fe8_4_ff; -extern cpuop_func op_5ff0_4_nf; -extern cpuop_func op_5ff0_4_ff; -extern cpuop_func op_5ff8_4_nf; -extern cpuop_func op_5ff8_4_ff; -extern cpuop_func op_5ff9_4_nf; -extern cpuop_func op_5ff9_4_ff; -extern cpuop_func op_6000_4_nf; -extern cpuop_func op_6000_4_ff; -extern cpuop_func op_6001_4_nf; -extern cpuop_func op_6001_4_ff; -extern cpuop_func op_60ff_4_nf; -extern cpuop_func op_60ff_4_ff; -extern cpuop_func op_6100_4_nf; -extern cpuop_func op_6100_4_ff; -extern cpuop_func op_6101_4_nf; -extern cpuop_func op_6101_4_ff; -extern cpuop_func op_61ff_4_nf; -extern cpuop_func op_61ff_4_ff; -extern cpuop_func op_6200_4_nf; -extern cpuop_func op_6200_4_ff; -extern cpuop_func op_6201_4_nf; -extern cpuop_func op_6201_4_ff; -extern cpuop_func op_62ff_4_nf; -extern cpuop_func op_62ff_4_ff; -extern cpuop_func op_6300_4_nf; -extern cpuop_func op_6300_4_ff; -extern cpuop_func op_6301_4_nf; -extern cpuop_func op_6301_4_ff; -extern cpuop_func op_63ff_4_nf; -extern cpuop_func op_63ff_4_ff; -extern cpuop_func op_6400_4_nf; -extern cpuop_func op_6400_4_ff; -extern cpuop_func op_6401_4_nf; -extern cpuop_func op_6401_4_ff; -extern cpuop_func op_64ff_4_nf; -extern cpuop_func op_64ff_4_ff; -extern cpuop_func op_6500_4_nf; -extern cpuop_func op_6500_4_ff; -extern cpuop_func op_6501_4_nf; -extern cpuop_func op_6501_4_ff; -extern cpuop_func op_65ff_4_nf; -extern cpuop_func op_65ff_4_ff; -extern cpuop_func op_6600_4_nf; -extern cpuop_func op_6600_4_ff; -extern cpuop_func op_6601_4_nf; -extern cpuop_func op_6601_4_ff; -extern cpuop_func op_66ff_4_nf; -extern cpuop_func op_66ff_4_ff; -extern cpuop_func op_6700_4_nf; -extern cpuop_func op_6700_4_ff; -extern cpuop_func op_6701_4_nf; -extern cpuop_func op_6701_4_ff; -extern cpuop_func op_67ff_4_nf; -extern cpuop_func op_67ff_4_ff; -extern cpuop_func op_6800_4_nf; -extern cpuop_func op_6800_4_ff; -extern cpuop_func op_6801_4_nf; -extern cpuop_func op_6801_4_ff; -extern cpuop_func op_68ff_4_nf; -extern cpuop_func op_68ff_4_ff; -extern cpuop_func op_6900_4_nf; -extern cpuop_func op_6900_4_ff; -extern cpuop_func op_6901_4_nf; -extern cpuop_func op_6901_4_ff; -extern cpuop_func op_69ff_4_nf; -extern cpuop_func op_69ff_4_ff; -extern cpuop_func op_6a00_4_nf; -extern cpuop_func op_6a00_4_ff; -extern cpuop_func op_6a01_4_nf; -extern cpuop_func op_6a01_4_ff; -extern cpuop_func op_6aff_4_nf; -extern cpuop_func op_6aff_4_ff; -extern cpuop_func op_6b00_4_nf; -extern cpuop_func op_6b00_4_ff; -extern cpuop_func op_6b01_4_nf; -extern cpuop_func op_6b01_4_ff; -extern cpuop_func op_6bff_4_nf; -extern cpuop_func op_6bff_4_ff; -extern cpuop_func op_6c00_4_nf; -extern cpuop_func op_6c00_4_ff; -extern cpuop_func op_6c01_4_nf; -extern cpuop_func op_6c01_4_ff; -extern cpuop_func op_6cff_4_nf; -extern cpuop_func op_6cff_4_ff; -extern cpuop_func op_6d00_4_nf; -extern cpuop_func op_6d00_4_ff; -extern cpuop_func op_6d01_4_nf; -extern cpuop_func op_6d01_4_ff; -extern cpuop_func op_6dff_4_nf; -extern cpuop_func op_6dff_4_ff; -extern cpuop_func op_6e00_4_nf; -extern cpuop_func op_6e00_4_ff; -extern cpuop_func op_6e01_4_nf; -extern cpuop_func op_6e01_4_ff; -extern cpuop_func op_6eff_4_nf; -extern cpuop_func op_6eff_4_ff; -extern cpuop_func op_6f00_4_nf; -extern cpuop_func op_6f00_4_ff; -extern cpuop_func op_6f01_4_nf; -extern cpuop_func op_6f01_4_ff; -extern cpuop_func op_6fff_4_nf; -extern cpuop_func op_6fff_4_ff; -extern cpuop_func op_7000_4_nf; -extern cpuop_func op_7000_4_ff; -extern cpuop_func op_8000_4_nf; -extern cpuop_func op_8000_4_ff; -extern cpuop_func op_8010_4_nf; -extern cpuop_func op_8010_4_ff; -extern cpuop_func op_8018_4_nf; -extern cpuop_func op_8018_4_ff; -extern cpuop_func op_8020_4_nf; -extern cpuop_func op_8020_4_ff; -extern cpuop_func op_8028_4_nf; -extern cpuop_func op_8028_4_ff; -extern cpuop_func op_8030_4_nf; -extern cpuop_func op_8030_4_ff; -extern cpuop_func op_8038_4_nf; -extern cpuop_func op_8038_4_ff; -extern cpuop_func op_8039_4_nf; -extern cpuop_func op_8039_4_ff; -extern cpuop_func op_803a_4_nf; -extern cpuop_func op_803a_4_ff; -extern cpuop_func op_803b_4_nf; -extern cpuop_func op_803b_4_ff; -extern cpuop_func op_803c_4_nf; -extern cpuop_func op_803c_4_ff; -extern cpuop_func op_8040_4_nf; -extern cpuop_func op_8040_4_ff; -extern cpuop_func op_8050_4_nf; -extern cpuop_func op_8050_4_ff; -extern cpuop_func op_8058_4_nf; -extern cpuop_func op_8058_4_ff; -extern cpuop_func op_8060_4_nf; -extern cpuop_func op_8060_4_ff; -extern cpuop_func op_8068_4_nf; -extern cpuop_func op_8068_4_ff; -extern cpuop_func op_8070_4_nf; -extern cpuop_func op_8070_4_ff; -extern cpuop_func op_8078_4_nf; -extern cpuop_func op_8078_4_ff; -extern cpuop_func op_8079_4_nf; -extern cpuop_func op_8079_4_ff; -extern cpuop_func op_807a_4_nf; -extern cpuop_func op_807a_4_ff; -extern cpuop_func op_807b_4_nf; -extern cpuop_func op_807b_4_ff; -extern cpuop_func op_807c_4_nf; -extern cpuop_func op_807c_4_ff; -extern cpuop_func op_8080_4_nf; -extern cpuop_func op_8080_4_ff; -extern cpuop_func op_8090_4_nf; -extern cpuop_func op_8090_4_ff; -extern cpuop_func op_8098_4_nf; -extern cpuop_func op_8098_4_ff; -extern cpuop_func op_80a0_4_nf; -extern cpuop_func op_80a0_4_ff; -extern cpuop_func op_80a8_4_nf; -extern cpuop_func op_80a8_4_ff; -extern cpuop_func op_80b0_4_nf; -extern cpuop_func op_80b0_4_ff; -extern cpuop_func op_80b8_4_nf; -extern cpuop_func op_80b8_4_ff; -extern cpuop_func op_80b9_4_nf; -extern cpuop_func op_80b9_4_ff; -extern cpuop_func op_80ba_4_nf; -extern cpuop_func op_80ba_4_ff; -extern cpuop_func op_80bb_4_nf; -extern cpuop_func op_80bb_4_ff; -extern cpuop_func op_80bc_4_nf; -extern cpuop_func op_80bc_4_ff; -extern cpuop_func op_80c0_4_nf; -extern cpuop_func op_80c0_4_ff; -extern cpuop_func op_80d0_4_nf; -extern cpuop_func op_80d0_4_ff; -extern cpuop_func op_80d8_4_nf; -extern cpuop_func op_80d8_4_ff; -extern cpuop_func op_80e0_4_nf; -extern cpuop_func op_80e0_4_ff; -extern cpuop_func op_80e8_4_nf; -extern cpuop_func op_80e8_4_ff; -extern cpuop_func op_80f0_4_nf; -extern cpuop_func op_80f0_4_ff; -extern cpuop_func op_80f8_4_nf; -extern cpuop_func op_80f8_4_ff; -extern cpuop_func op_80f9_4_nf; -extern cpuop_func op_80f9_4_ff; -extern cpuop_func op_80fa_4_nf; -extern cpuop_func op_80fa_4_ff; -extern cpuop_func op_80fb_4_nf; -extern cpuop_func op_80fb_4_ff; -extern cpuop_func op_80fc_4_nf; -extern cpuop_func op_80fc_4_ff; -extern cpuop_func op_8100_4_nf; -extern cpuop_func op_8100_4_ff; -extern cpuop_func op_8108_4_nf; -extern cpuop_func op_8108_4_ff; -extern cpuop_func op_8110_4_nf; -extern cpuop_func op_8110_4_ff; -extern cpuop_func op_8118_4_nf; -extern cpuop_func op_8118_4_ff; -extern cpuop_func op_8120_4_nf; -extern cpuop_func op_8120_4_ff; -extern cpuop_func op_8128_4_nf; -extern cpuop_func op_8128_4_ff; -extern cpuop_func op_8130_4_nf; -extern cpuop_func op_8130_4_ff; -extern cpuop_func op_8138_4_nf; -extern cpuop_func op_8138_4_ff; -extern cpuop_func op_8139_4_nf; -extern cpuop_func op_8139_4_ff; -extern cpuop_func op_8150_4_nf; -extern cpuop_func op_8150_4_ff; -extern cpuop_func op_8158_4_nf; -extern cpuop_func op_8158_4_ff; -extern cpuop_func op_8160_4_nf; -extern cpuop_func op_8160_4_ff; -extern cpuop_func op_8168_4_nf; -extern cpuop_func op_8168_4_ff; -extern cpuop_func op_8170_4_nf; -extern cpuop_func op_8170_4_ff; -extern cpuop_func op_8178_4_nf; -extern cpuop_func op_8178_4_ff; -extern cpuop_func op_8179_4_nf; -extern cpuop_func op_8179_4_ff; -extern cpuop_func op_8190_4_nf; -extern cpuop_func op_8190_4_ff; -extern cpuop_func op_8198_4_nf; -extern cpuop_func op_8198_4_ff; -extern cpuop_func op_81a0_4_nf; -extern cpuop_func op_81a0_4_ff; -extern cpuop_func op_81a8_4_nf; -extern cpuop_func op_81a8_4_ff; -extern cpuop_func op_81b0_4_nf; -extern cpuop_func op_81b0_4_ff; -extern cpuop_func op_81b8_4_nf; -extern cpuop_func op_81b8_4_ff; -extern cpuop_func op_81b9_4_nf; -extern cpuop_func op_81b9_4_ff; -extern cpuop_func op_81c0_4_nf; -extern cpuop_func op_81c0_4_ff; -extern cpuop_func op_81d0_4_nf; -extern cpuop_func op_81d0_4_ff; -extern cpuop_func op_81d8_4_nf; -extern cpuop_func op_81d8_4_ff; -extern cpuop_func op_81e0_4_nf; -extern cpuop_func op_81e0_4_ff; -extern cpuop_func op_81e8_4_nf; -extern cpuop_func op_81e8_4_ff; -extern cpuop_func op_81f0_4_nf; -extern cpuop_func op_81f0_4_ff; -extern cpuop_func op_81f8_4_nf; -extern cpuop_func op_81f8_4_ff; -extern cpuop_func op_81f9_4_nf; -extern cpuop_func op_81f9_4_ff; -extern cpuop_func op_81fa_4_nf; -extern cpuop_func op_81fa_4_ff; -extern cpuop_func op_81fb_4_nf; -extern cpuop_func op_81fb_4_ff; -extern cpuop_func op_81fc_4_nf; -extern cpuop_func op_81fc_4_ff; -extern cpuop_func op_9000_4_nf; -extern cpuop_func op_9000_4_ff; -extern cpuop_func op_9010_4_nf; -extern cpuop_func op_9010_4_ff; -extern cpuop_func op_9018_4_nf; -extern cpuop_func op_9018_4_ff; -extern cpuop_func op_9020_4_nf; -extern cpuop_func op_9020_4_ff; -extern cpuop_func op_9028_4_nf; -extern cpuop_func op_9028_4_ff; -extern cpuop_func op_9030_4_nf; -extern cpuop_func op_9030_4_ff; -extern cpuop_func op_9038_4_nf; -extern cpuop_func op_9038_4_ff; -extern cpuop_func op_9039_4_nf; -extern cpuop_func op_9039_4_ff; -extern cpuop_func op_903a_4_nf; -extern cpuop_func op_903a_4_ff; -extern cpuop_func op_903b_4_nf; -extern cpuop_func op_903b_4_ff; -extern cpuop_func op_903c_4_nf; -extern cpuop_func op_903c_4_ff; -extern cpuop_func op_9040_4_nf; -extern cpuop_func op_9040_4_ff; -extern cpuop_func op_9048_4_nf; -extern cpuop_func op_9048_4_ff; -extern cpuop_func op_9050_4_nf; -extern cpuop_func op_9050_4_ff; -extern cpuop_func op_9058_4_nf; -extern cpuop_func op_9058_4_ff; -extern cpuop_func op_9060_4_nf; -extern cpuop_func op_9060_4_ff; -extern cpuop_func op_9068_4_nf; -extern cpuop_func op_9068_4_ff; -extern cpuop_func op_9070_4_nf; -extern cpuop_func op_9070_4_ff; -extern cpuop_func op_9078_4_nf; -extern cpuop_func op_9078_4_ff; -extern cpuop_func op_9079_4_nf; -extern cpuop_func op_9079_4_ff; -extern cpuop_func op_907a_4_nf; -extern cpuop_func op_907a_4_ff; -extern cpuop_func op_907b_4_nf; -extern cpuop_func op_907b_4_ff; -extern cpuop_func op_907c_4_nf; -extern cpuop_func op_907c_4_ff; -extern cpuop_func op_9080_4_nf; -extern cpuop_func op_9080_4_ff; -extern cpuop_func op_9088_4_nf; -extern cpuop_func op_9088_4_ff; -extern cpuop_func op_9090_4_nf; -extern cpuop_func op_9090_4_ff; -extern cpuop_func op_9098_4_nf; -extern cpuop_func op_9098_4_ff; -extern cpuop_func op_90a0_4_nf; -extern cpuop_func op_90a0_4_ff; -extern cpuop_func op_90a8_4_nf; -extern cpuop_func op_90a8_4_ff; -extern cpuop_func op_90b0_4_nf; -extern cpuop_func op_90b0_4_ff; -extern cpuop_func op_90b8_4_nf; -extern cpuop_func op_90b8_4_ff; -extern cpuop_func op_90b9_4_nf; -extern cpuop_func op_90b9_4_ff; -extern cpuop_func op_90ba_4_nf; -extern cpuop_func op_90ba_4_ff; -extern cpuop_func op_90bb_4_nf; -extern cpuop_func op_90bb_4_ff; -extern cpuop_func op_90bc_4_nf; -extern cpuop_func op_90bc_4_ff; -extern cpuop_func op_90c0_4_nf; -extern cpuop_func op_90c0_4_ff; -extern cpuop_func op_90c8_4_nf; -extern cpuop_func op_90c8_4_ff; -extern cpuop_func op_90d0_4_nf; -extern cpuop_func op_90d0_4_ff; -extern cpuop_func op_90d8_4_nf; -extern cpuop_func op_90d8_4_ff; -extern cpuop_func op_90e0_4_nf; -extern cpuop_func op_90e0_4_ff; -extern cpuop_func op_90e8_4_nf; -extern cpuop_func op_90e8_4_ff; -extern cpuop_func op_90f0_4_nf; -extern cpuop_func op_90f0_4_ff; -extern cpuop_func op_90f8_4_nf; -extern cpuop_func op_90f8_4_ff; -extern cpuop_func op_90f9_4_nf; -extern cpuop_func op_90f9_4_ff; -extern cpuop_func op_90fa_4_nf; -extern cpuop_func op_90fa_4_ff; -extern cpuop_func op_90fb_4_nf; -extern cpuop_func op_90fb_4_ff; -extern cpuop_func op_90fc_4_nf; -extern cpuop_func op_90fc_4_ff; -extern cpuop_func op_9100_4_nf; -extern cpuop_func op_9100_4_ff; -extern cpuop_func op_9108_4_nf; -extern cpuop_func op_9108_4_ff; -extern cpuop_func op_9110_4_nf; -extern cpuop_func op_9110_4_ff; -extern cpuop_func op_9118_4_nf; -extern cpuop_func op_9118_4_ff; -extern cpuop_func op_9120_4_nf; -extern cpuop_func op_9120_4_ff; -extern cpuop_func op_9128_4_nf; -extern cpuop_func op_9128_4_ff; -extern cpuop_func op_9130_4_nf; -extern cpuop_func op_9130_4_ff; -extern cpuop_func op_9138_4_nf; -extern cpuop_func op_9138_4_ff; -extern cpuop_func op_9139_4_nf; -extern cpuop_func op_9139_4_ff; -extern cpuop_func op_9140_4_nf; -extern cpuop_func op_9140_4_ff; -extern cpuop_func op_9148_4_nf; -extern cpuop_func op_9148_4_ff; -extern cpuop_func op_9150_4_nf; -extern cpuop_func op_9150_4_ff; -extern cpuop_func op_9158_4_nf; -extern cpuop_func op_9158_4_ff; -extern cpuop_func op_9160_4_nf; -extern cpuop_func op_9160_4_ff; -extern cpuop_func op_9168_4_nf; -extern cpuop_func op_9168_4_ff; -extern cpuop_func op_9170_4_nf; -extern cpuop_func op_9170_4_ff; -extern cpuop_func op_9178_4_nf; -extern cpuop_func op_9178_4_ff; -extern cpuop_func op_9179_4_nf; -extern cpuop_func op_9179_4_ff; -extern cpuop_func op_9180_4_nf; -extern cpuop_func op_9180_4_ff; -extern cpuop_func op_9188_4_nf; -extern cpuop_func op_9188_4_ff; -extern cpuop_func op_9190_4_nf; -extern cpuop_func op_9190_4_ff; -extern cpuop_func op_9198_4_nf; -extern cpuop_func op_9198_4_ff; -extern cpuop_func op_91a0_4_nf; -extern cpuop_func op_91a0_4_ff; -extern cpuop_func op_91a8_4_nf; -extern cpuop_func op_91a8_4_ff; -extern cpuop_func op_91b0_4_nf; -extern cpuop_func op_91b0_4_ff; -extern cpuop_func op_91b8_4_nf; -extern cpuop_func op_91b8_4_ff; -extern cpuop_func op_91b9_4_nf; -extern cpuop_func op_91b9_4_ff; -extern cpuop_func op_91c0_4_nf; -extern cpuop_func op_91c0_4_ff; -extern cpuop_func op_91c8_4_nf; -extern cpuop_func op_91c8_4_ff; -extern cpuop_func op_91d0_4_nf; -extern cpuop_func op_91d0_4_ff; -extern cpuop_func op_91d8_4_nf; -extern cpuop_func op_91d8_4_ff; -extern cpuop_func op_91e0_4_nf; -extern cpuop_func op_91e0_4_ff; -extern cpuop_func op_91e8_4_nf; -extern cpuop_func op_91e8_4_ff; -extern cpuop_func op_91f0_4_nf; -extern cpuop_func op_91f0_4_ff; -extern cpuop_func op_91f8_4_nf; -extern cpuop_func op_91f8_4_ff; -extern cpuop_func op_91f9_4_nf; -extern cpuop_func op_91f9_4_ff; -extern cpuop_func op_91fa_4_nf; -extern cpuop_func op_91fa_4_ff; -extern cpuop_func op_91fb_4_nf; -extern cpuop_func op_91fb_4_ff; -extern cpuop_func op_91fc_4_nf; -extern cpuop_func op_91fc_4_ff; -extern cpuop_func op_b000_4_nf; -extern cpuop_func op_b000_4_ff; -extern cpuop_func op_b010_4_nf; -extern cpuop_func op_b010_4_ff; -extern cpuop_func op_b018_4_nf; -extern cpuop_func op_b018_4_ff; -extern cpuop_func op_b020_4_nf; -extern cpuop_func op_b020_4_ff; -extern cpuop_func op_b028_4_nf; -extern cpuop_func op_b028_4_ff; -extern cpuop_func op_b030_4_nf; -extern cpuop_func op_b030_4_ff; -extern cpuop_func op_b038_4_nf; -extern cpuop_func op_b038_4_ff; -extern cpuop_func op_b039_4_nf; -extern cpuop_func op_b039_4_ff; -extern cpuop_func op_b03a_4_nf; -extern cpuop_func op_b03a_4_ff; -extern cpuop_func op_b03b_4_nf; -extern cpuop_func op_b03b_4_ff; -extern cpuop_func op_b03c_4_nf; -extern cpuop_func op_b03c_4_ff; -extern cpuop_func op_b040_4_nf; -extern cpuop_func op_b040_4_ff; -extern cpuop_func op_b048_4_nf; -extern cpuop_func op_b048_4_ff; -extern cpuop_func op_b050_4_nf; -extern cpuop_func op_b050_4_ff; -extern cpuop_func op_b058_4_nf; -extern cpuop_func op_b058_4_ff; -extern cpuop_func op_b060_4_nf; -extern cpuop_func op_b060_4_ff; -extern cpuop_func op_b068_4_nf; -extern cpuop_func op_b068_4_ff; -extern cpuop_func op_b070_4_nf; -extern cpuop_func op_b070_4_ff; -extern cpuop_func op_b078_4_nf; -extern cpuop_func op_b078_4_ff; -extern cpuop_func op_b079_4_nf; -extern cpuop_func op_b079_4_ff; -extern cpuop_func op_b07a_4_nf; -extern cpuop_func op_b07a_4_ff; -extern cpuop_func op_b07b_4_nf; -extern cpuop_func op_b07b_4_ff; -extern cpuop_func op_b07c_4_nf; -extern cpuop_func op_b07c_4_ff; -extern cpuop_func op_b080_4_nf; -extern cpuop_func op_b080_4_ff; -extern cpuop_func op_b088_4_nf; -extern cpuop_func op_b088_4_ff; -extern cpuop_func op_b090_4_nf; -extern cpuop_func op_b090_4_ff; -extern cpuop_func op_b098_4_nf; -extern cpuop_func op_b098_4_ff; -extern cpuop_func op_b0a0_4_nf; -extern cpuop_func op_b0a0_4_ff; -extern cpuop_func op_b0a8_4_nf; -extern cpuop_func op_b0a8_4_ff; -extern cpuop_func op_b0b0_4_nf; -extern cpuop_func op_b0b0_4_ff; -extern cpuop_func op_b0b8_4_nf; -extern cpuop_func op_b0b8_4_ff; -extern cpuop_func op_b0b9_4_nf; -extern cpuop_func op_b0b9_4_ff; -extern cpuop_func op_b0ba_4_nf; -extern cpuop_func op_b0ba_4_ff; -extern cpuop_func op_b0bb_4_nf; -extern cpuop_func op_b0bb_4_ff; -extern cpuop_func op_b0bc_4_nf; -extern cpuop_func op_b0bc_4_ff; -extern cpuop_func op_b0c0_4_nf; -extern cpuop_func op_b0c0_4_ff; -extern cpuop_func op_b0c8_4_nf; -extern cpuop_func op_b0c8_4_ff; -extern cpuop_func op_b0d0_4_nf; -extern cpuop_func op_b0d0_4_ff; -extern cpuop_func op_b0d8_4_nf; -extern cpuop_func op_b0d8_4_ff; -extern cpuop_func op_b0e0_4_nf; -extern cpuop_func op_b0e0_4_ff; -extern cpuop_func op_b0e8_4_nf; -extern cpuop_func op_b0e8_4_ff; -extern cpuop_func op_b0f0_4_nf; -extern cpuop_func op_b0f0_4_ff; -extern cpuop_func op_b0f8_4_nf; -extern cpuop_func op_b0f8_4_ff; -extern cpuop_func op_b0f9_4_nf; -extern cpuop_func op_b0f9_4_ff; -extern cpuop_func op_b0fa_4_nf; -extern cpuop_func op_b0fa_4_ff; -extern cpuop_func op_b0fb_4_nf; -extern cpuop_func op_b0fb_4_ff; -extern cpuop_func op_b0fc_4_nf; -extern cpuop_func op_b0fc_4_ff; -extern cpuop_func op_b100_4_nf; -extern cpuop_func op_b100_4_ff; -extern cpuop_func op_b108_4_nf; -extern cpuop_func op_b108_4_ff; -extern cpuop_func op_b110_4_nf; -extern cpuop_func op_b110_4_ff; -extern cpuop_func op_b118_4_nf; -extern cpuop_func op_b118_4_ff; -extern cpuop_func op_b120_4_nf; -extern cpuop_func op_b120_4_ff; -extern cpuop_func op_b128_4_nf; -extern cpuop_func op_b128_4_ff; -extern cpuop_func op_b130_4_nf; -extern cpuop_func op_b130_4_ff; -extern cpuop_func op_b138_4_nf; -extern cpuop_func op_b138_4_ff; -extern cpuop_func op_b139_4_nf; -extern cpuop_func op_b139_4_ff; -extern cpuop_func op_b140_4_nf; -extern cpuop_func op_b140_4_ff; -extern cpuop_func op_b148_4_nf; -extern cpuop_func op_b148_4_ff; -extern cpuop_func op_b150_4_nf; -extern cpuop_func op_b150_4_ff; -extern cpuop_func op_b158_4_nf; -extern cpuop_func op_b158_4_ff; -extern cpuop_func op_b160_4_nf; -extern cpuop_func op_b160_4_ff; -extern cpuop_func op_b168_4_nf; -extern cpuop_func op_b168_4_ff; -extern cpuop_func op_b170_4_nf; -extern cpuop_func op_b170_4_ff; -extern cpuop_func op_b178_4_nf; -extern cpuop_func op_b178_4_ff; -extern cpuop_func op_b179_4_nf; -extern cpuop_func op_b179_4_ff; -extern cpuop_func op_b180_4_nf; -extern cpuop_func op_b180_4_ff; -extern cpuop_func op_b188_4_nf; -extern cpuop_func op_b188_4_ff; -extern cpuop_func op_b190_4_nf; -extern cpuop_func op_b190_4_ff; -extern cpuop_func op_b198_4_nf; -extern cpuop_func op_b198_4_ff; -extern cpuop_func op_b1a0_4_nf; -extern cpuop_func op_b1a0_4_ff; -extern cpuop_func op_b1a8_4_nf; -extern cpuop_func op_b1a8_4_ff; -extern cpuop_func op_b1b0_4_nf; -extern cpuop_func op_b1b0_4_ff; -extern cpuop_func op_b1b8_4_nf; -extern cpuop_func op_b1b8_4_ff; -extern cpuop_func op_b1b9_4_nf; -extern cpuop_func op_b1b9_4_ff; -extern cpuop_func op_b1c0_4_nf; -extern cpuop_func op_b1c0_4_ff; -extern cpuop_func op_b1c8_4_nf; -extern cpuop_func op_b1c8_4_ff; -extern cpuop_func op_b1d0_4_nf; -extern cpuop_func op_b1d0_4_ff; -extern cpuop_func op_b1d8_4_nf; -extern cpuop_func op_b1d8_4_ff; -extern cpuop_func op_b1e0_4_nf; -extern cpuop_func op_b1e0_4_ff; -extern cpuop_func op_b1e8_4_nf; -extern cpuop_func op_b1e8_4_ff; -extern cpuop_func op_b1f0_4_nf; -extern cpuop_func op_b1f0_4_ff; -extern cpuop_func op_b1f8_4_nf; -extern cpuop_func op_b1f8_4_ff; -extern cpuop_func op_b1f9_4_nf; -extern cpuop_func op_b1f9_4_ff; -extern cpuop_func op_b1fa_4_nf; -extern cpuop_func op_b1fa_4_ff; -extern cpuop_func op_b1fb_4_nf; -extern cpuop_func op_b1fb_4_ff; -extern cpuop_func op_b1fc_4_nf; -extern cpuop_func op_b1fc_4_ff; -extern cpuop_func op_c000_4_nf; -extern cpuop_func op_c000_4_ff; -extern cpuop_func op_c010_4_nf; -extern cpuop_func op_c010_4_ff; -extern cpuop_func op_c018_4_nf; -extern cpuop_func op_c018_4_ff; -extern cpuop_func op_c020_4_nf; -extern cpuop_func op_c020_4_ff; -extern cpuop_func op_c028_4_nf; -extern cpuop_func op_c028_4_ff; -extern cpuop_func op_c030_4_nf; -extern cpuop_func op_c030_4_ff; -extern cpuop_func op_c038_4_nf; -extern cpuop_func op_c038_4_ff; -extern cpuop_func op_c039_4_nf; -extern cpuop_func op_c039_4_ff; -extern cpuop_func op_c03a_4_nf; -extern cpuop_func op_c03a_4_ff; -extern cpuop_func op_c03b_4_nf; -extern cpuop_func op_c03b_4_ff; -extern cpuop_func op_c03c_4_nf; -extern cpuop_func op_c03c_4_ff; -extern cpuop_func op_c040_4_nf; -extern cpuop_func op_c040_4_ff; -extern cpuop_func op_c050_4_nf; -extern cpuop_func op_c050_4_ff; -extern cpuop_func op_c058_4_nf; -extern cpuop_func op_c058_4_ff; -extern cpuop_func op_c060_4_nf; -extern cpuop_func op_c060_4_ff; -extern cpuop_func op_c068_4_nf; -extern cpuop_func op_c068_4_ff; -extern cpuop_func op_c070_4_nf; -extern cpuop_func op_c070_4_ff; -extern cpuop_func op_c078_4_nf; -extern cpuop_func op_c078_4_ff; -extern cpuop_func op_c079_4_nf; -extern cpuop_func op_c079_4_ff; -extern cpuop_func op_c07a_4_nf; -extern cpuop_func op_c07a_4_ff; -extern cpuop_func op_c07b_4_nf; -extern cpuop_func op_c07b_4_ff; -extern cpuop_func op_c07c_4_nf; -extern cpuop_func op_c07c_4_ff; -extern cpuop_func op_c080_4_nf; -extern cpuop_func op_c080_4_ff; -extern cpuop_func op_c090_4_nf; -extern cpuop_func op_c090_4_ff; -extern cpuop_func op_c098_4_nf; -extern cpuop_func op_c098_4_ff; -extern cpuop_func op_c0a0_4_nf; -extern cpuop_func op_c0a0_4_ff; -extern cpuop_func op_c0a8_4_nf; -extern cpuop_func op_c0a8_4_ff; -extern cpuop_func op_c0b0_4_nf; -extern cpuop_func op_c0b0_4_ff; -extern cpuop_func op_c0b8_4_nf; -extern cpuop_func op_c0b8_4_ff; -extern cpuop_func op_c0b9_4_nf; -extern cpuop_func op_c0b9_4_ff; -extern cpuop_func op_c0ba_4_nf; -extern cpuop_func op_c0ba_4_ff; -extern cpuop_func op_c0bb_4_nf; -extern cpuop_func op_c0bb_4_ff; -extern cpuop_func op_c0bc_4_nf; -extern cpuop_func op_c0bc_4_ff; -extern cpuop_func op_c0c0_4_nf; -extern cpuop_func op_c0c0_4_ff; -extern cpuop_func op_c0d0_4_nf; -extern cpuop_func op_c0d0_4_ff; -extern cpuop_func op_c0d8_4_nf; -extern cpuop_func op_c0d8_4_ff; -extern cpuop_func op_c0e0_4_nf; -extern cpuop_func op_c0e0_4_ff; -extern cpuop_func op_c0e8_4_nf; -extern cpuop_func op_c0e8_4_ff; -extern cpuop_func op_c0f0_4_nf; -extern cpuop_func op_c0f0_4_ff; -extern cpuop_func op_c0f8_4_nf; -extern cpuop_func op_c0f8_4_ff; -extern cpuop_func op_c0f9_4_nf; -extern cpuop_func op_c0f9_4_ff; -extern cpuop_func op_c0fa_4_nf; -extern cpuop_func op_c0fa_4_ff; -extern cpuop_func op_c0fb_4_nf; -extern cpuop_func op_c0fb_4_ff; -extern cpuop_func op_c0fc_4_nf; -extern cpuop_func op_c0fc_4_ff; -extern cpuop_func op_c100_4_nf; -extern cpuop_func op_c100_4_ff; -extern cpuop_func op_c108_4_nf; -extern cpuop_func op_c108_4_ff; -extern cpuop_func op_c110_4_nf; -extern cpuop_func op_c110_4_ff; -extern cpuop_func op_c118_4_nf; -extern cpuop_func op_c118_4_ff; -extern cpuop_func op_c120_4_nf; -extern cpuop_func op_c120_4_ff; -extern cpuop_func op_c128_4_nf; -extern cpuop_func op_c128_4_ff; -extern cpuop_func op_c130_4_nf; -extern cpuop_func op_c130_4_ff; -extern cpuop_func op_c138_4_nf; -extern cpuop_func op_c138_4_ff; -extern cpuop_func op_c139_4_nf; -extern cpuop_func op_c139_4_ff; -extern cpuop_func op_c140_4_nf; -extern cpuop_func op_c140_4_ff; -extern cpuop_func op_c148_4_nf; -extern cpuop_func op_c148_4_ff; -extern cpuop_func op_c150_4_nf; -extern cpuop_func op_c150_4_ff; -extern cpuop_func op_c158_4_nf; -extern cpuop_func op_c158_4_ff; -extern cpuop_func op_c160_4_nf; -extern cpuop_func op_c160_4_ff; -extern cpuop_func op_c168_4_nf; -extern cpuop_func op_c168_4_ff; -extern cpuop_func op_c170_4_nf; -extern cpuop_func op_c170_4_ff; -extern cpuop_func op_c178_4_nf; -extern cpuop_func op_c178_4_ff; -extern cpuop_func op_c179_4_nf; -extern cpuop_func op_c179_4_ff; -extern cpuop_func op_c188_4_nf; -extern cpuop_func op_c188_4_ff; -extern cpuop_func op_c190_4_nf; -extern cpuop_func op_c190_4_ff; -extern cpuop_func op_c198_4_nf; -extern cpuop_func op_c198_4_ff; -extern cpuop_func op_c1a0_4_nf; -extern cpuop_func op_c1a0_4_ff; -extern cpuop_func op_c1a8_4_nf; -extern cpuop_func op_c1a8_4_ff; -extern cpuop_func op_c1b0_4_nf; -extern cpuop_func op_c1b0_4_ff; -extern cpuop_func op_c1b8_4_nf; -extern cpuop_func op_c1b8_4_ff; -extern cpuop_func op_c1b9_4_nf; -extern cpuop_func op_c1b9_4_ff; -extern cpuop_func op_c1c0_4_nf; -extern cpuop_func op_c1c0_4_ff; -extern cpuop_func op_c1d0_4_nf; -extern cpuop_func op_c1d0_4_ff; -extern cpuop_func op_c1d8_4_nf; -extern cpuop_func op_c1d8_4_ff; -extern cpuop_func op_c1e0_4_nf; -extern cpuop_func op_c1e0_4_ff; -extern cpuop_func op_c1e8_4_nf; -extern cpuop_func op_c1e8_4_ff; -extern cpuop_func op_c1f0_4_nf; -extern cpuop_func op_c1f0_4_ff; -extern cpuop_func op_c1f8_4_nf; -extern cpuop_func op_c1f8_4_ff; -extern cpuop_func op_c1f9_4_nf; -extern cpuop_func op_c1f9_4_ff; -extern cpuop_func op_c1fa_4_nf; -extern cpuop_func op_c1fa_4_ff; -extern cpuop_func op_c1fb_4_nf; -extern cpuop_func op_c1fb_4_ff; -extern cpuop_func op_c1fc_4_nf; -extern cpuop_func op_c1fc_4_ff; -extern cpuop_func op_d000_4_nf; -extern cpuop_func op_d000_4_ff; -extern cpuop_func op_d010_4_nf; -extern cpuop_func op_d010_4_ff; -extern cpuop_func op_d018_4_nf; -extern cpuop_func op_d018_4_ff; -extern cpuop_func op_d020_4_nf; -extern cpuop_func op_d020_4_ff; -extern cpuop_func op_d028_4_nf; -extern cpuop_func op_d028_4_ff; -extern cpuop_func op_d030_4_nf; -extern cpuop_func op_d030_4_ff; -extern cpuop_func op_d038_4_nf; -extern cpuop_func op_d038_4_ff; -extern cpuop_func op_d039_4_nf; -extern cpuop_func op_d039_4_ff; -extern cpuop_func op_d03a_4_nf; -extern cpuop_func op_d03a_4_ff; -extern cpuop_func op_d03b_4_nf; -extern cpuop_func op_d03b_4_ff; -extern cpuop_func op_d03c_4_nf; -extern cpuop_func op_d03c_4_ff; -extern cpuop_func op_d040_4_nf; -extern cpuop_func op_d040_4_ff; -extern cpuop_func op_d048_4_nf; -extern cpuop_func op_d048_4_ff; -extern cpuop_func op_d050_4_nf; -extern cpuop_func op_d050_4_ff; -extern cpuop_func op_d058_4_nf; -extern cpuop_func op_d058_4_ff; -extern cpuop_func op_d060_4_nf; -extern cpuop_func op_d060_4_ff; -extern cpuop_func op_d068_4_nf; -extern cpuop_func op_d068_4_ff; -extern cpuop_func op_d070_4_nf; -extern cpuop_func op_d070_4_ff; -extern cpuop_func op_d078_4_nf; -extern cpuop_func op_d078_4_ff; -extern cpuop_func op_d079_4_nf; -extern cpuop_func op_d079_4_ff; -extern cpuop_func op_d07a_4_nf; -extern cpuop_func op_d07a_4_ff; -extern cpuop_func op_d07b_4_nf; -extern cpuop_func op_d07b_4_ff; -extern cpuop_func op_d07c_4_nf; -extern cpuop_func op_d07c_4_ff; -extern cpuop_func op_d080_4_nf; -extern cpuop_func op_d080_4_ff; -extern cpuop_func op_d088_4_nf; -extern cpuop_func op_d088_4_ff; -extern cpuop_func op_d090_4_nf; -extern cpuop_func op_d090_4_ff; -extern cpuop_func op_d098_4_nf; -extern cpuop_func op_d098_4_ff; -extern cpuop_func op_d0a0_4_nf; -extern cpuop_func op_d0a0_4_ff; -extern cpuop_func op_d0a8_4_nf; -extern cpuop_func op_d0a8_4_ff; -extern cpuop_func op_d0b0_4_nf; -extern cpuop_func op_d0b0_4_ff; -extern cpuop_func op_d0b8_4_nf; -extern cpuop_func op_d0b8_4_ff; -extern cpuop_func op_d0b9_4_nf; -extern cpuop_func op_d0b9_4_ff; -extern cpuop_func op_d0ba_4_nf; -extern cpuop_func op_d0ba_4_ff; -extern cpuop_func op_d0bb_4_nf; -extern cpuop_func op_d0bb_4_ff; -extern cpuop_func op_d0bc_4_nf; -extern cpuop_func op_d0bc_4_ff; -extern cpuop_func op_d0c0_4_nf; -extern cpuop_func op_d0c0_4_ff; -extern cpuop_func op_d0c8_4_nf; -extern cpuop_func op_d0c8_4_ff; -extern cpuop_func op_d0d0_4_nf; -extern cpuop_func op_d0d0_4_ff; -extern cpuop_func op_d0d8_4_nf; -extern cpuop_func op_d0d8_4_ff; -extern cpuop_func op_d0e0_4_nf; -extern cpuop_func op_d0e0_4_ff; -extern cpuop_func op_d0e8_4_nf; -extern cpuop_func op_d0e8_4_ff; -extern cpuop_func op_d0f0_4_nf; -extern cpuop_func op_d0f0_4_ff; -extern cpuop_func op_d0f8_4_nf; -extern cpuop_func op_d0f8_4_ff; -extern cpuop_func op_d0f9_4_nf; -extern cpuop_func op_d0f9_4_ff; -extern cpuop_func op_d0fa_4_nf; -extern cpuop_func op_d0fa_4_ff; -extern cpuop_func op_d0fb_4_nf; -extern cpuop_func op_d0fb_4_ff; -extern cpuop_func op_d0fc_4_nf; -extern cpuop_func op_d0fc_4_ff; -extern cpuop_func op_d100_4_nf; -extern cpuop_func op_d100_4_ff; -extern cpuop_func op_d108_4_nf; -extern cpuop_func op_d108_4_ff; -extern cpuop_func op_d110_4_nf; -extern cpuop_func op_d110_4_ff; -extern cpuop_func op_d118_4_nf; -extern cpuop_func op_d118_4_ff; -extern cpuop_func op_d120_4_nf; -extern cpuop_func op_d120_4_ff; -extern cpuop_func op_d128_4_nf; -extern cpuop_func op_d128_4_ff; -extern cpuop_func op_d130_4_nf; -extern cpuop_func op_d130_4_ff; -extern cpuop_func op_d138_4_nf; -extern cpuop_func op_d138_4_ff; -extern cpuop_func op_d139_4_nf; -extern cpuop_func op_d139_4_ff; -extern cpuop_func op_d140_4_nf; -extern cpuop_func op_d140_4_ff; -extern cpuop_func op_d148_4_nf; -extern cpuop_func op_d148_4_ff; -extern cpuop_func op_d150_4_nf; -extern cpuop_func op_d150_4_ff; -extern cpuop_func op_d158_4_nf; -extern cpuop_func op_d158_4_ff; -extern cpuop_func op_d160_4_nf; -extern cpuop_func op_d160_4_ff; -extern cpuop_func op_d168_4_nf; -extern cpuop_func op_d168_4_ff; -extern cpuop_func op_d170_4_nf; -extern cpuop_func op_d170_4_ff; -extern cpuop_func op_d178_4_nf; -extern cpuop_func op_d178_4_ff; -extern cpuop_func op_d179_4_nf; -extern cpuop_func op_d179_4_ff; -extern cpuop_func op_d180_4_nf; -extern cpuop_func op_d180_4_ff; -extern cpuop_func op_d188_4_nf; -extern cpuop_func op_d188_4_ff; -extern cpuop_func op_d190_4_nf; -extern cpuop_func op_d190_4_ff; -extern cpuop_func op_d198_4_nf; -extern cpuop_func op_d198_4_ff; -extern cpuop_func op_d1a0_4_nf; -extern cpuop_func op_d1a0_4_ff; -extern cpuop_func op_d1a8_4_nf; -extern cpuop_func op_d1a8_4_ff; -extern cpuop_func op_d1b0_4_nf; -extern cpuop_func op_d1b0_4_ff; -extern cpuop_func op_d1b8_4_nf; -extern cpuop_func op_d1b8_4_ff; -extern cpuop_func op_d1b9_4_nf; -extern cpuop_func op_d1b9_4_ff; -extern cpuop_func op_d1c0_4_nf; -extern cpuop_func op_d1c0_4_ff; -extern cpuop_func op_d1c8_4_nf; -extern cpuop_func op_d1c8_4_ff; -extern cpuop_func op_d1d0_4_nf; -extern cpuop_func op_d1d0_4_ff; -extern cpuop_func op_d1d8_4_nf; -extern cpuop_func op_d1d8_4_ff; -extern cpuop_func op_d1e0_4_nf; -extern cpuop_func op_d1e0_4_ff; -extern cpuop_func op_d1e8_4_nf; -extern cpuop_func op_d1e8_4_ff; -extern cpuop_func op_d1f0_4_nf; -extern cpuop_func op_d1f0_4_ff; -extern cpuop_func op_d1f8_4_nf; -extern cpuop_func op_d1f8_4_ff; -extern cpuop_func op_d1f9_4_nf; -extern cpuop_func op_d1f9_4_ff; -extern cpuop_func op_d1fa_4_nf; -extern cpuop_func op_d1fa_4_ff; -extern cpuop_func op_d1fb_4_nf; -extern cpuop_func op_d1fb_4_ff; -extern cpuop_func op_d1fc_4_nf; -extern cpuop_func op_d1fc_4_ff; -extern cpuop_func op_e000_4_nf; -extern cpuop_func op_e000_4_ff; -extern cpuop_func op_e008_4_nf; -extern cpuop_func op_e008_4_ff; -extern cpuop_func op_e010_4_nf; -extern cpuop_func op_e010_4_ff; -extern cpuop_func op_e018_4_nf; -extern cpuop_func op_e018_4_ff; -extern cpuop_func op_e020_4_nf; -extern cpuop_func op_e020_4_ff; -extern cpuop_func op_e028_4_nf; -extern cpuop_func op_e028_4_ff; -extern cpuop_func op_e030_4_nf; -extern cpuop_func op_e030_4_ff; -extern cpuop_func op_e038_4_nf; -extern cpuop_func op_e038_4_ff; -extern cpuop_func op_e040_4_nf; -extern cpuop_func op_e040_4_ff; -extern cpuop_func op_e048_4_nf; -extern cpuop_func op_e048_4_ff; -extern cpuop_func op_e050_4_nf; -extern cpuop_func op_e050_4_ff; -extern cpuop_func op_e058_4_nf; -extern cpuop_func op_e058_4_ff; -extern cpuop_func op_e060_4_nf; -extern cpuop_func op_e060_4_ff; -extern cpuop_func op_e068_4_nf; -extern cpuop_func op_e068_4_ff; -extern cpuop_func op_e070_4_nf; -extern cpuop_func op_e070_4_ff; -extern cpuop_func op_e078_4_nf; -extern cpuop_func op_e078_4_ff; -extern cpuop_func op_e080_4_nf; -extern cpuop_func op_e080_4_ff; -extern cpuop_func op_e088_4_nf; -extern cpuop_func op_e088_4_ff; -extern cpuop_func op_e090_4_nf; -extern cpuop_func op_e090_4_ff; -extern cpuop_func op_e098_4_nf; -extern cpuop_func op_e098_4_ff; -extern cpuop_func op_e0a0_4_nf; -extern cpuop_func op_e0a0_4_ff; -extern cpuop_func op_e0a8_4_nf; -extern cpuop_func op_e0a8_4_ff; -extern cpuop_func op_e0b0_4_nf; -extern cpuop_func op_e0b0_4_ff; -extern cpuop_func op_e0b8_4_nf; -extern cpuop_func op_e0b8_4_ff; -extern cpuop_func op_e0d0_4_nf; -extern cpuop_func op_e0d0_4_ff; -extern cpuop_func op_e0d8_4_nf; -extern cpuop_func op_e0d8_4_ff; -extern cpuop_func op_e0e0_4_nf; -extern cpuop_func op_e0e0_4_ff; -extern cpuop_func op_e0e8_4_nf; -extern cpuop_func op_e0e8_4_ff; -extern cpuop_func op_e0f0_4_nf; -extern cpuop_func op_e0f0_4_ff; -extern cpuop_func op_e0f8_4_nf; -extern cpuop_func op_e0f8_4_ff; -extern cpuop_func op_e0f9_4_nf; -extern cpuop_func op_e0f9_4_ff; -extern cpuop_func op_e100_4_nf; -extern cpuop_func op_e100_4_ff; -extern cpuop_func op_e108_4_nf; -extern cpuop_func op_e108_4_ff; -extern cpuop_func op_e110_4_nf; -extern cpuop_func op_e110_4_ff; -extern cpuop_func op_e118_4_nf; -extern cpuop_func op_e118_4_ff; -extern cpuop_func op_e120_4_nf; -extern cpuop_func op_e120_4_ff; -extern cpuop_func op_e128_4_nf; -extern cpuop_func op_e128_4_ff; -extern cpuop_func op_e130_4_nf; -extern cpuop_func op_e130_4_ff; -extern cpuop_func op_e138_4_nf; -extern cpuop_func op_e138_4_ff; -extern cpuop_func op_e140_4_nf; -extern cpuop_func op_e140_4_ff; -extern cpuop_func op_e148_4_nf; -extern cpuop_func op_e148_4_ff; -extern cpuop_func op_e150_4_nf; -extern cpuop_func op_e150_4_ff; -extern cpuop_func op_e158_4_nf; -extern cpuop_func op_e158_4_ff; -extern cpuop_func op_e160_4_nf; -extern cpuop_func op_e160_4_ff; -extern cpuop_func op_e168_4_nf; -extern cpuop_func op_e168_4_ff; -extern cpuop_func op_e170_4_nf; -extern cpuop_func op_e170_4_ff; -extern cpuop_func op_e178_4_nf; -extern cpuop_func op_e178_4_ff; -extern cpuop_func op_e180_4_nf; -extern cpuop_func op_e180_4_ff; -extern cpuop_func op_e188_4_nf; -extern cpuop_func op_e188_4_ff; -extern cpuop_func op_e190_4_nf; -extern cpuop_func op_e190_4_ff; -extern cpuop_func op_e198_4_nf; -extern cpuop_func op_e198_4_ff; -extern cpuop_func op_e1a0_4_nf; -extern cpuop_func op_e1a0_4_ff; -extern cpuop_func op_e1a8_4_nf; -extern cpuop_func op_e1a8_4_ff; -extern cpuop_func op_e1b0_4_nf; -extern cpuop_func op_e1b0_4_ff; -extern cpuop_func op_e1b8_4_nf; -extern cpuop_func op_e1b8_4_ff; -extern cpuop_func op_e1d0_4_nf; -extern cpuop_func op_e1d0_4_ff; -extern cpuop_func op_e1d8_4_nf; -extern cpuop_func op_e1d8_4_ff; -extern cpuop_func op_e1e0_4_nf; -extern cpuop_func op_e1e0_4_ff; -extern cpuop_func op_e1e8_4_nf; -extern cpuop_func op_e1e8_4_ff; -extern cpuop_func op_e1f0_4_nf; -extern cpuop_func op_e1f0_4_ff; -extern cpuop_func op_e1f8_4_nf; -extern cpuop_func op_e1f8_4_ff; -extern cpuop_func op_e1f9_4_nf; -extern cpuop_func op_e1f9_4_ff; -extern cpuop_func op_e2d0_4_nf; -extern cpuop_func op_e2d0_4_ff; -extern cpuop_func op_e2d8_4_nf; -extern cpuop_func op_e2d8_4_ff; -extern cpuop_func op_e2e0_4_nf; -extern cpuop_func op_e2e0_4_ff; -extern cpuop_func op_e2e8_4_nf; -extern cpuop_func op_e2e8_4_ff; -extern cpuop_func op_e2f0_4_nf; -extern cpuop_func op_e2f0_4_ff; -extern cpuop_func op_e2f8_4_nf; -extern cpuop_func op_e2f8_4_ff; -extern cpuop_func op_e2f9_4_nf; -extern cpuop_func op_e2f9_4_ff; -extern cpuop_func op_e3d0_4_nf; -extern cpuop_func op_e3d0_4_ff; -extern cpuop_func op_e3d8_4_nf; -extern cpuop_func op_e3d8_4_ff; -extern cpuop_func op_e3e0_4_nf; -extern cpuop_func op_e3e0_4_ff; -extern cpuop_func op_e3e8_4_nf; -extern cpuop_func op_e3e8_4_ff; -extern cpuop_func op_e3f0_4_nf; -extern cpuop_func op_e3f0_4_ff; -extern cpuop_func op_e3f8_4_nf; -extern cpuop_func op_e3f8_4_ff; -extern cpuop_func op_e3f9_4_nf; -extern cpuop_func op_e3f9_4_ff; -extern cpuop_func op_e4d0_4_nf; -extern cpuop_func op_e4d0_4_ff; -extern cpuop_func op_e4d8_4_nf; -extern cpuop_func op_e4d8_4_ff; -extern cpuop_func op_e4e0_4_nf; -extern cpuop_func op_e4e0_4_ff; -extern cpuop_func op_e4e8_4_nf; -extern cpuop_func op_e4e8_4_ff; -extern cpuop_func op_e4f0_4_nf; -extern cpuop_func op_e4f0_4_ff; -extern cpuop_func op_e4f8_4_nf; -extern cpuop_func op_e4f8_4_ff; -extern cpuop_func op_e4f9_4_nf; -extern cpuop_func op_e4f9_4_ff; -extern cpuop_func op_e5d0_4_nf; -extern cpuop_func op_e5d0_4_ff; -extern cpuop_func op_e5d8_4_nf; -extern cpuop_func op_e5d8_4_ff; -extern cpuop_func op_e5e0_4_nf; -extern cpuop_func op_e5e0_4_ff; -extern cpuop_func op_e5e8_4_nf; -extern cpuop_func op_e5e8_4_ff; -extern cpuop_func op_e5f0_4_nf; -extern cpuop_func op_e5f0_4_ff; -extern cpuop_func op_e5f8_4_nf; -extern cpuop_func op_e5f8_4_ff; -extern cpuop_func op_e5f9_4_nf; -extern cpuop_func op_e5f9_4_ff; -extern cpuop_func op_e6d0_4_nf; -extern cpuop_func op_e6d0_4_ff; -extern cpuop_func op_e6d8_4_nf; -extern cpuop_func op_e6d8_4_ff; -extern cpuop_func op_e6e0_4_nf; -extern cpuop_func op_e6e0_4_ff; -extern cpuop_func op_e6e8_4_nf; -extern cpuop_func op_e6e8_4_ff; -extern cpuop_func op_e6f0_4_nf; -extern cpuop_func op_e6f0_4_ff; -extern cpuop_func op_e6f8_4_nf; -extern cpuop_func op_e6f8_4_ff; -extern cpuop_func op_e6f9_4_nf; -extern cpuop_func op_e6f9_4_ff; -extern cpuop_func op_e7d0_4_nf; -extern cpuop_func op_e7d0_4_ff; -extern cpuop_func op_e7d8_4_nf; -extern cpuop_func op_e7d8_4_ff; -extern cpuop_func op_e7e0_4_nf; -extern cpuop_func op_e7e0_4_ff; -extern cpuop_func op_e7e8_4_nf; -extern cpuop_func op_e7e8_4_ff; -extern cpuop_func op_e7f0_4_nf; -extern cpuop_func op_e7f0_4_ff; -extern cpuop_func op_e7f8_4_nf; -extern cpuop_func op_e7f8_4_ff; -extern cpuop_func op_e7f9_4_nf; -extern cpuop_func op_e7f9_4_ff; extern cpuop_func op_0_5_nf; extern cpuop_func op_0_5_ff; extern cpuop_func op_10_5_nf; diff --git a/waterbox/virtualjaguar/src/m68000/gencpu.c b/waterbox/virtualjaguar/src/m68000/gencpu.c deleted file mode 100644 index 88f121ba1b..0000000000 --- a/waterbox/virtualjaguar/src/m68000/gencpu.c +++ /dev/null @@ -1,2818 +0,0 @@ -/* - * UAE - The Un*x Amiga Emulator - CPU core - * - * 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. - * - * The source for the insn timings is Markt & Technik's Amiga Magazin 8/1992. - * - * Copyright 1995, 1996, 1997, 1998, 1999, 2000 Bernd Schmidt - * - * Adaptation to Hatari and better cpu timings by Thomas Huth - * Adaptation to Virtual Jaguar by James Hammons - * - * This file is distributed under the GNU Public License, version 3 or at - * your option any later version. Read the file GPLv3 for details. - * - */ - - -/* 2007/03/xx [NP] Use add_cycles.pl to set 'CurrentInstrCycles' in each opcode. */ -/* 2007/04/09 [NP] Correct CLR : on 68000, CLR reads the memory before clearing it (but we should */ -/* not add cycles for reading). This means CLR can give 2 wait states (one for */ -/* read and one for right) (clr.b $fa1b.w in Decade's Demo Main Menu). */ -/* 2007/04/14 [NP] - Although dest -(an) normally takes 2 cycles, this is not the case for move : */ -/* move dest (an), (an)+ and -(an) all take the same time (curi->dmode == Apdi) */ -/* (Syntax Terror Demo Reset). */ -/* - Scc takes 6 cycles instead of 4 if the result is true (Ventura Demo Loader). */ -/* - Store the family of the current opcode into OpcodeFamily : used to check */ -/* instruction pairing on ST into m68000.c */ -/* 2007/04/17 [NP] Add support for cycle accurate MULU (No Cooper Greeting Screen). */ -/* 2007/04/24 [NP] BCLR #n,Dx takes 12 cycles instead of 14 if n<16 (ULM Demo Menu). */ -/* 2007/04/25 [NP] On ST, d8(An,Xn) and d8(PC,Xn) take 2 cycles more than the official 68000's */ -/* table (ULM Demo Menu). */ -/* 2007/11/12 [NP] Add refill_prefetch for i_ADD to fix Transbeauce 2 demo self modified code. */ -/* Ugly hack, we need better prefetch emulation (switch to winuae gencpu.c) */ -/* 2007/11/25 [NP] In i_DBcc, in case of address error, last_addr_for_exception_3 should be */ -/* pc+4, not pc+2 (Transbeauce 2 demo) (e.g. 'dbf d0,#$fff5'). */ -/* This means the value pushed on the frame stack should be the address of the */ -/* instruction following the one generating the address error. */ -/* FIXME : this should be the case for i_BSR and i_BCC too (need to check on */ -/* a real 68000). */ -/* 2007/11/28 [NP] Backport DIVS/DIVU cycles exact routines from WinUAE (original work by Jorge */ -/* Cwik, pasti@fxatari.com). */ -/* 2007/12/08 [NP] In case of CHK/CHK2 exception, PC stored on the stack wasn't pointing to the */ -/* next instruction but to the current CHK/CHK2 instruction (Transbeauce 2 demo). */ -/* We need to call 'sync_m68k_pc' before calling 'Exception'. */ -/* 2007/12/09 [NP] CHK.L (e.g. $4700) doesn't exist on 68000 and should be considered as an illegal*/ -/* instruction (Transbeauce 2 demo) -> change in table68k. */ -/* 2008/01/24 [NP] BCLR Dy,Dx takes 8 cycles instead of 10 if Dy<16 (Fullshade in Anomaly Demos). */ -/* 2008/01/26 [NP] On ST, d8(An,Xn) takes 2 cycles more when used with ADDA/SUBA (ULM Demo Menu) */ -/* but not when used with MOVE (e.g. 'move.l 0(a5,d1),(a4)' takes 26 cycles and so */ -/* can pair with a lsr) (Anomaly Demo Intro). */ -/* 2008/04/26 [NP] Handle sz_byte for Areg in genamode, as 'move.b a1,(a0)' ($1089) is possible */ -/* on ST (fix Blood Money on Superior 65) */ -/* 2010/04/05 [NP] On ST, d8(An,Xn) takes 2 cycles more (which can generate pairing). */ -/* Use BusCyclePenalty to properly handle the 2/4 cycles added in that case when */ -/* addressing mode is Ad8r or PC8r (ULM Demo Menu, Anomaly Demo Intro, DHS */ -/* Sommarhack 2010) (see m68000.h) */ - - -//const char GenCpu_fileid[] = "Hatari gencpu.c : " __DATE__ " " __TIME__; - -#include -#include - -#include "sysdeps.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; - -char exactCpuCycles[256]; /* Space to store return string for exact cpu cycles */ - -long nCurInstrCycPos; /* Stores where we have to patch in the current cycles value */ - -/* 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; -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) { - if (fscanf (file, "Total: %lu\n", &total) == EOF) { - perror("read_counts"); - } - while (fscanf (file, "%lx: %lu %s\n", &opcode, &count, name) == 3) { - opcode_next_clev[nr] = 4; - 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] = 4; - 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 += 8; - - 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 += 4; - - 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 += 4; - - 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. - * gb-- movem == 2 means the same thing but for a MOVE16 instruction */ -static void genamode(amodes mode, const char * reg, wordsizes size, - const char * name, int getv, int movem) -{ - start_brace(); - switch (mode) - { - case Dreg: - if (movem) - abort (); - if (getv == 1) - switch (size) { - case sz_byte: - printf ("\tint8_t %s = m68k_dreg(regs, %s);\n", name, reg); - break; - case sz_word: - printf ("\tint16_t %s = m68k_dreg(regs, %s);\n", name, reg); - break; - case sz_long: - printf ("\tint32_t %s = m68k_dreg(regs, %s);\n", name, reg); - break; - default: - abort (); - } - return; - case Areg: - if (movem) - abort (); - if (getv == 1) - switch (size) { - case sz_byte: // [NP] Areg with .b is possible in MOVE source */ - printf ("\tint8_t %s = m68k_areg(regs, %s);\n", name, reg); - break; - case sz_word: - printf ("\tint16_t %s = m68k_areg(regs, %s);\n", name, reg); - break; - case sz_long: - printf ("\tint32_t %s = m68k_areg(regs, %s);\n", name, reg); - break; - default: - abort (); - } - return; - case Aind: - printf ("\tuint32_t %sa = m68k_areg(regs, %s);\n", name, reg); - break; - case Aipi: - printf ("\tuint32_t %sa = m68k_areg(regs, %s);\n", name, reg); - break; - case Apdi: - insn_n_cycles += 2; - switch (size) { - case sz_byte: - if (movem) - printf ("\tuint32_t %sa = m68k_areg(regs, %s);\n", name, reg); - else - printf ("\tuint32_t %sa = m68k_areg(regs, %s) - areg_byteinc[%s];\n", name, reg, reg); - break; - case sz_word: - printf ("\tuint32_t %sa = m68k_areg(regs, %s) - %d;\n", name, reg, movem ? 0 : 2); - break; - case sz_long: - printf ("\tuint32_t %sa = m68k_areg(regs, %s) - %d;\n", name, reg, movem ? 0 : 4); - break; - default: - abort (); - } - break; - case Ad16: - printf ("\tuint32_t %sa = m68k_areg(regs, %s) + (int32_t)(int16_t)%s;\n", name, reg, gen_nextiword ()); - break; - case Ad8r: - insn_n_cycles += 2; - if (cpu_level > 1) { - if (next_cpu_level < 1) - next_cpu_level = 1; - sync_m68k_pc (); - start_brace (); - /* This would ordinarily be done in gen_nextiword, which we bypass. */ - insn_n_cycles += 4; - printf ("\tuint32_t %sa = get_disp_ea_020(m68k_areg(regs, %s), next_iword());\n", name, reg); - } else { - printf ("\tuint32_t %sa = get_disp_ea_000(m68k_areg(regs, %s), %s);\n", name, reg, gen_nextiword ()); - } - printf ("\tBusCyclePenalty += 2;\n"); - - break; - case PC16: - printf ("\tuint32_t %sa = m68k_getpc () + %d;\n", name, m68k_pc_offset); - printf ("\t%sa += (int32_t)(int16_t)%s;\n", name, gen_nextiword ()); - break; - case PC8r: - insn_n_cycles += 2; - if (cpu_level > 1) { - if (next_cpu_level < 1) - next_cpu_level = 1; - sync_m68k_pc (); - start_brace (); - /* This would ordinarily be done in gen_nextiword, which we bypass. */ - insn_n_cycles += 4; - printf ("\tuint32_t tmppc = m68k_getpc();\n"); - printf ("\tuint32_t %sa = get_disp_ea_020(tmppc, next_iword());\n", name); - } else { - printf ("\tuint32_t tmppc = m68k_getpc() + %d;\n", m68k_pc_offset); - printf ("\tuint32_t %sa = get_disp_ea_000(tmppc, %s);\n", name, gen_nextiword ()); - } - printf ("\tBusCyclePenalty += 2;\n"); - - break; - case absw: - printf ("\tuint32_t %sa = (int32_t)(int16_t)%s;\n", name, gen_nextiword ()); - break; - case absl: - printf ("\tuint32_t %sa = %s;\n", name, gen_nextilong ()); - break; - case imm: - if (getv != 1) - abort (); - switch (size) { - case sz_byte: - printf ("\tint8_t %s = %s;\n", name, gen_nextibyte ()); - break; - case sz_word: - printf ("\tint16_t %s = %s;\n", name, gen_nextiword ()); - break; - case sz_long: - printf ("\tint32_t %s = %s;\n", name, gen_nextilong ()); - break; - default: - abort (); - } - return; - case imm0: - if (getv != 1) - abort (); - printf ("\tint8_t %s = %s;\n", name, gen_nextibyte ()); - return; - case imm1: - if (getv != 1) - abort (); - printf ("\tint16_t %s = %s;\n", name, gen_nextiword ()); - return; - case imm2: - if (getv != 1) - abort (); - printf ("\tint32_t %s = %s;\n", name, gen_nextilong ()); - return; - case immi: - if (getv != 1) - abort (); - printf ("\tuint32_t %s = %s;\n", name, reg); - 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, M68000_EXC_SRC_CPU);\n"); - printf ("\t\tgoto %s;\n", endlabelstr); - printf ("\t}\n"); - need_endlabel = 1; - start_brace (); - } - - if (getv == 1) { - switch (size) { - case sz_byte: insn_n_cycles += 4; break; - case sz_word: insn_n_cycles += 4; break; - case sz_long: insn_n_cycles += 8; break; - default: abort (); - } - start_brace (); - switch (size) { - case sz_byte: printf ("\tint8_t %s = m68k_read_memory_8(%sa);\n", name, name); break; - case sz_word: printf ("\tint16_t %s = m68k_read_memory_16(%sa);\n", name, name); break; - case sz_long: printf ("\tint32_t %s = m68k_read_memory_32(%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); - break; - default: - break; - } -} - -static void genastore (const char *from, amodes mode, const char *reg, - wordsizes size, const 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 (); - } - break; - case Areg: - switch (size) { - case sz_word: - fprintf (stderr, "Foo\n"); - printf ("\tm68k_areg(regs, %s) = (int32_t)(int16_t)(%s);\n", reg, from); - break; - case sz_long: - printf ("\tm68k_areg(regs, %s) = (%s);\n", reg, from); - break; - default: - abort (); - } - 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 += 4; - printf ("\tm68k_write_memory_8(%sa,%s);\n", to, from); - break; - case sz_word: - insn_n_cycles += 4; - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - abort (); - printf ("\tm68k_write_memory_16(%sa,%s);\n", to, from); - break; - case sz_long: - insn_n_cycles += 8; - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - abort (); - printf ("\tm68k_write_memory_32(%sa,%s);\n", to, from); - break; - default: - abort (); - } - break; - case imm: - case imm0: - case imm1: - case imm2: - case immi: - abort (); - break; - default: - abort (); - } -} - - -static void genmovemel (uint16_t opcode) -{ - char getcode[100]; - int bMovemLong = (table68k[opcode].size == sz_long); - int size = bMovemLong ? 4 : 2; - - if (bMovemLong) { - strcpy (getcode, "m68k_read_memory_32(srca)"); - } else { - strcpy (getcode, "(int32_t)(int16_t)m68k_read_memory_16(srca)"); - } - - printf ("\tuint16_t mask = %s;\n", gen_nextiword ()); - printf ("\tunsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); - printf ("\tretcycles = 0;\n"); - genamode (table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1); - start_brace (); - printf ("\twhile (dmask) { m68k_dreg(regs, movem_index1[dmask]) = %s;" - " srca += %d; dmask = movem_next[dmask]; retcycles+=%d; }\n", - getcode, size, (bMovemLong ? 8 : 4)); - printf ("\twhile (amask) { m68k_areg(regs, movem_index1[amask]) = %s;" - " srca += %d; amask = movem_next[amask]; retcycles+=%d; }\n", - getcode, size, (bMovemLong ? 8 : 4)); - - if (table68k[opcode].dmode == Aipi) - printf ("\tm68k_areg(regs, dstreg) = srca;\n"); - - /* Better cycles - experimental! (Thothy) */ - switch(table68k[opcode].dmode) - { - case Aind: insn_n_cycles=12; break; - case Aipi: insn_n_cycles=12; break; - case Ad16: insn_n_cycles=16; break; - case Ad8r: insn_n_cycles=18; break; - case absw: insn_n_cycles=16; break; - case absl: insn_n_cycles=20; break; - case PC16: insn_n_cycles=16; break; - case PC8r: insn_n_cycles=18; break; - } - sprintf(exactCpuCycles," return (%i+retcycles);", insn_n_cycles); -} - -static void genmovemle (uint16_t opcode) -{ - char putcode[100]; - int bMovemLong = (table68k[opcode].size == sz_long); - int size = bMovemLong ? 4 : 2; - - if (bMovemLong) { - strcpy (putcode, "m68k_write_memory_32(srca,"); - } else { - strcpy (putcode, "m68k_write_memory_16(srca,"); - } - - printf ("\tuint16_t mask = %s;\n", gen_nextiword ()); - printf ("\tretcycles = 0;\n"); - 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 ("\tuint16_t amask = mask & 0xff, dmask = (mask >> 8) & 0xff;\n"); - printf ("\twhile (amask) { srca -= %d; %s m68k_areg(regs, movem_index2[amask]));" - " amask = movem_next[amask]; retcycles+=%d; }\n", - size, putcode, (bMovemLong ? 8 : 4)); - printf ("\twhile (dmask) { srca -= %d; %s m68k_dreg(regs, movem_index2[dmask]));" - " dmask = movem_next[dmask]; retcycles+=%d; }\n", - size, putcode, (bMovemLong ? 8 : 4)); - printf ("\tm68k_areg(regs, dstreg) = srca;\n"); - } else { - printf ("\tuint16_t dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); - printf ("\twhile (dmask) { %s m68k_dreg(regs, movem_index1[dmask])); srca += %d;" - " dmask = movem_next[dmask]; retcycles+=%d; }\n", - putcode, size, (bMovemLong ? 8 : 4)); - printf ("\twhile (amask) { %s m68k_areg(regs, movem_index1[amask])); srca += %d;" - " amask = movem_next[amask]; retcycles+=%d; }\n", - putcode, size, (bMovemLong ? 8 : 4)); - } - - /* Better cycles - experimental! (Thothy) */ - switch(table68k[opcode].dmode) - { - case Aind: insn_n_cycles=8; break; - case Apdi: insn_n_cycles=8; break; - case Ad16: insn_n_cycles=12; break; - case Ad8r: insn_n_cycles=14; break; - case absw: insn_n_cycles=12; break; - case absl: insn_n_cycles=16; break; - } - sprintf(exactCpuCycles," return (%i+retcycles);", insn_n_cycles); -} - - -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, const char *value, - const char *src, const 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, "((int8_t)("); - strcpy (usstr, "((uint8_t)("); - break; - case sz_word: - strcpy (vstr, "((int16_t)("); - strcpy (usstr, "((uint16_t)("); - break; - case sz_long: - strcpy (vstr, "((int32_t)("); - strcpy (usstr, "((uint32_t)("); - 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 ("uint32_t %s = %s + %s;\n", value, dstr, sstr); - break; - case flag_sub: - case flag_cmp: - start_brace (); - printf ("uint32_t %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, const char *value, - const char *src, const char *dst) -{ - /* Temporarily deleted 68k/ARM flag optimizations. I'd prefer to have - them in the appropriate m68k.h files and use just one copy of this - code here. The API can be changed if necessary. */ -#ifdef OPTIMIZED_FLAGS - switch (type) { - case flag_add: - case flag_sub: - start_brace (); - printf ("\tuint32_t %s;\n", value); - break; - - default: - break; - } - - /* At least some of those casts are fairly important! */ - switch (type) { - case flag_logical_noclobber: - printf ("\t{uint32_t oldcznv = GET_CZNV & ~(FLAGVAL_Z | FLAGVAL_N);\n"); - if (strcmp (value, "0") == 0) { - printf ("\tSET_CZNV (olcznv | FLAGVAL_Z);\n"); - } else { - switch (size) { - case sz_byte: printf ("\toptflag_testb ((int8_t)(%s));\n", value); break; - case sz_word: printf ("\toptflag_testw ((int16_t)(%s));\n", value); break; - case sz_long: printf ("\toptflag_testl ((int32_t)(%s));\n", value); break; - } - printf ("\tIOR_CZNV (oldcznv);\n"); - } - printf ("\t}\n"); - return; - case flag_logical: - if (strcmp (value, "0") == 0) { - printf ("\tSET_CZNV (FLAGVAL_Z);\n"); - } else { - switch (size) { - case sz_byte: printf ("\toptflag_testb ((int8_t)(%s));\n", value); break; - case sz_word: printf ("\toptflag_testw ((int16_t)(%s));\n", value); break; - case sz_long: printf ("\toptflag_testl ((int32_t)(%s));\n", value); break; - } - } - return; - - case flag_add: - switch (size) { - case sz_byte: printf ("\toptflag_addb (%s, (int8_t)(%s), (int8_t)(%s));\n", value, src, dst); break; - case sz_word: printf ("\toptflag_addw (%s, (int16_t)(%s), (int16_t)(%s));\n", value, src, dst); break; - case sz_long: printf ("\toptflag_addl (%s, (int32_t)(%s), (int32_t)(%s));\n", value, src, dst); break; - } - return; - - case flag_sub: - switch (size) { - case sz_byte: printf ("\toptflag_subb (%s, (int8_t)(%s), (int8_t)(%s));\n", value, src, dst); break; - case sz_word: printf ("\toptflag_subw (%s, (int16_t)(%s), (int16_t)(%s));\n", value, src, dst); break; - case sz_long: printf ("\toptflag_subl (%s, (int32_t)(%s), (int32_t)(%s));\n", value, src, dst); break; - } - return; - - case flag_cmp: - switch (size) { - case sz_byte: printf ("\toptflag_cmpb ((int8_t)(%s), (int8_t)(%s));\n", src, dst); break; - case sz_word: printf ("\toptflag_cmpw ((int16_t)(%s), (int16_t)(%s));\n", src, dst); break; - case sz_long: printf ("\toptflag_cmpl ((int32_t)(%s), (int32_t)(%s));\n", src, dst); break; - } - return; - - default: - 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) -{ -#if 0 - char *amodenames[] = { "Dreg", "Areg", "Aind", "Aipi", "Apdi", "Ad16", "Ad8r", - "absw", "absl", "PC16", "PC8r", "imm", "imm0", "imm1", "imm2", "immi", "am_unknown", "am_illg"}; -#endif - - struct instr *curi = table68k + opcode; - insn_n_cycles = 4; - - /* Store the family of the instruction (used to check for pairing on ST) - * and leave some space for patching in the current cycles later */ - printf ("\tOpcodeFamily = %d; CurrentInstrCycles = \n", curi->mnemo); - nCurInstrCycPos = ftell(stdout) - 5; - - start_brace (); - 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,M68000_EXC_SRC_CPU); 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,M68000_EXC_SRC_CPU); goto %s; }\n", endlabelstr); - need_endlabel = 1; - start_brace (); - break; - } - - /* Build the opcodes: */ - 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(curi->size==sz_long && curi->dmode==Dreg) - { - insn_n_cycles += 2; - if(curi->smode==Dreg || curi->smode==Areg || (curi->smode>=imm && curi->smode<=immi)) - insn_n_cycles += 2; - } -#if 0 - /* Output the CPU cycles: */ - fprintf(stderr,"MOVE, size %i: ",curi->size); - fprintf(stderr," %s ->",amodenames[curi->smode]); - fprintf(stderr," %s ",amodenames[curi->dmode]); - fprintf(stderr," Cycles: %i\n",insn_n_cycles); -#endif - 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"); - insn_n_cycles = 20; - 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"); - insn_n_cycles = 20; - 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(curi->size==sz_long && curi->dmode==Dreg) - { - insn_n_cycles += 2; - if(curi->smode==Dreg || curi->smode==Areg || (curi->smode>=imm && curi->smode<=immi)) - insn_n_cycles += 2; - } - 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 ("\tuint32_t newv = dst - src;\n"); - genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - if(curi->size==sz_long && curi->smode!=Dreg && curi->smode!=Areg && !(curi->smode>=imm && curi->smode<=immi)) - insn_n_cycles += 2; - else - insn_n_cycles += 4; - 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 ("\tuint32_t 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(curi->smode==Dreg && curi->size==sz_long) - insn_n_cycles=8; - if(curi->smode==Apdi) - { - if(curi->size==sz_long) - insn_n_cycles=30; - else - insn_n_cycles=18; - } - break; - case i_SBCD: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0); - start_brace (); - printf ("\tuint16_t newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0);\n"); - printf ("\tuint16_t newv_hi = (dst & 0xF0) - (src & 0xF0);\n"); - printf ("\tuint16_t newv, tmp_newv;\n"); - printf ("\tint bcd = 0;\n"); - printf ("\tnewv = tmp_newv = newv_hi + newv_lo;\n"); - printf ("\tif (newv_lo & 0xF0) { newv -= 6; bcd = 6; };\n"); - printf ("\tif ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; }\n"); - printf ("\tSET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG ? 1 : 0)) & 0x300) > 0xFF);\n"); - duplicate_carry (); - genflags (flag_zn, curi->size, "newv", "", ""); - printf ("\tSET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0);\n"); - genastore ("newv", curi->dmode, "dstreg", curi->size, "dst"); - if(curi->smode==Dreg) insn_n_cycles=6; - if(curi->smode==Apdi) insn_n_cycles=18; - break; - case i_ADD: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0); - start_brace (); - printf("\trefill_prefetch (m68k_getpc(), 2);\n"); // FIXME [NP] For Transbeauce 2 demo, need better prefetch emulation - genflags (flag_add, curi->size, "newv", "src", "dst"); - genastore ("newv", curi->dmode, "dstreg", curi->size, "dst"); - if(curi->size==sz_long && curi->dmode==Dreg) - { - insn_n_cycles += 2; - if(curi->smode==Dreg || curi->smode==Areg || (curi->smode>=imm && curi->smode<=immi)) - insn_n_cycles += 2; - } - 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 ("\tuint32_t newv = dst + src;\n"); - genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - if(curi->size==sz_long && curi->smode!=Dreg && curi->smode!=Areg && !(curi->smode>=imm && curi->smode<=immi)) - insn_n_cycles += 2; - else - insn_n_cycles += 4; - 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 ("\tuint32_t 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(curi->smode==Dreg && curi->size==sz_long) - insn_n_cycles=8; - if(curi->smode==Apdi) - { - if(curi->size==sz_long) - insn_n_cycles=30; - else - insn_n_cycles=18; - } - 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 ("\tuint16_t newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0);\n"); - printf ("\tuint16_t newv_hi = (src & 0xF0) + (dst & 0xF0);\n"); - printf ("\tuint16_t newv, tmp_newv;\n"); - printf ("\tint cflg;\n"); - printf ("\tnewv = tmp_newv = newv_hi + newv_lo;"); - printf ("\tif (newv_lo > 9) { newv += 6; }\n"); - printf ("\tcflg = (newv & 0x3F0) > 0x90;\n"); - printf ("\tif (cflg) newv += 0x60;\n"); - printf ("\tSET_CFLG (cflg);\n"); - duplicate_carry (); - genflags (flag_zn, curi->size, "newv", "", ""); - printf ("\tSET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0);\n"); - genastore ("newv", curi->dmode, "dstreg", curi->size, "dst"); - if(curi->smode==Dreg) insn_n_cycles=6; - if(curi->smode==Apdi) insn_n_cycles=18; - 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(curi->size==sz_long && curi->smode==Dreg) insn_n_cycles += 2; - break; - case i_NEGX: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace (); - printf ("\tuint32_t 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(curi->size==sz_long && curi->smode==Dreg) insn_n_cycles += 2; - break; - case i_NBCD: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace (); - printf ("\tuint16_t newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);\n"); - printf ("\tuint16_t newv_hi = - (src & 0xF0);\n"); - printf ("\tuint16_t newv;\n"); - printf ("\tint cflg;\n"); - printf ("\tif (newv_lo > 9) { newv_lo -= 6; }\n"); - printf ("\tnewv = newv_hi + newv_lo;"); - printf ("\tcflg = (newv & 0x1F0) > 0x90;\n"); - printf ("\tif (cflg) newv -= 0x60;\n"); - printf ("\tSET_CFLG (cflg);\n"); - duplicate_carry(); - genflags (flag_zn, curi->size, "newv", "", ""); - genastore ("newv", curi->smode, "srcreg", curi->size, "src"); - if(curi->smode==Dreg) insn_n_cycles += 2; - break; - case i_CLR: - genamode (curi->smode, "srcreg", curi->size, "src", 2, 0); - - /* [NP] CLR does a read before the write only on 68000 */ - /* but there's no cycle penalty for doing the read */ - if ( curi->smode != Dreg ) // only if destination is memory - { - if (curi->size==sz_byte) - printf ("\tint8_t src = m68k_read_memory_8(srca);\n"); - else if (curi->size==sz_word) - printf ("\tint16_t src = m68k_read_memory_16(srca);\n"); - else if (curi->size==sz_long) - printf ("\tint32_t src = m68k_read_memory_32(srca);\n"); - } - - genflags (flag_logical, curi->size, "0", "", ""); - genastore ("0", curi->smode, "srcreg", curi->size, "src"); - if(curi->size==sz_long) - { - if(curi->smode==Dreg) - insn_n_cycles += 2; - else - insn_n_cycles += 4; - } - if(curi->smode!=Dreg) - insn_n_cycles += 4; - break; - case i_NOT: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace (); - printf ("\tuint32_t dst = ~src;\n"); - genflags (flag_logical, curi->size, "dst", "", ""); - genastore ("dst", curi->smode, "srcreg", curi->size, "src"); - if(curi->size==sz_long && curi->smode==Dreg) insn_n_cycles += 2; - break; - case i_TST: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - genflags (flag_logical, curi->size, "src", "", ""); - 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(curi->dmode==Dreg) insn_n_cycles += 2; - 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"); - printf ("\tSET_ZFLG (((uint32_t)dst & (1 << src)) >> src);\n"); - genastore ("dst", curi->dmode, "dstreg", curi->size, "dst"); - if(curi->dmode==Dreg) insn_n_cycles += 4; - 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(curi->dmode==Dreg) insn_n_cycles += 6; - /* [NP] BCLR #n,Dx takes 12 cycles instead of 14 if n<16 */ - if((curi->smode==imm1) && (curi->dmode==Dreg)) - printf ("\tif ( src < 16 ) { m68k_incpc(4); return 12; }\n"); - /* [NP] BCLR Dy,Dx takes 8 cycles instead of 10 if Dy<16 */ - if((curi->smode==Dreg) && (curi->dmode==Dreg)) - printf ("\tif ( src < 16 ) { m68k_incpc(2); return 8; }\n"); - 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(curi->dmode==Dreg) insn_n_cycles += 4; - 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(curi->size==sz_long && curi->dmode==Dreg) - insn_n_cycles += 2; - 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"); - insn_n_cycles += 2; - 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 ("\tuint32_t memp = m68k_areg(regs, dstreg) + (int32_t)(int16_t)%s;\n", gen_nextiword ()); - if (curi->size == sz_word) { - printf ("\tm68k_write_memory_8(memp, src >> 8); m68k_write_memory_8(memp + 2, src);\n"); - } else { - printf ("\tm68k_write_memory_8(memp, src >> 24); m68k_write_memory_8(memp + 2, src >> 16);\n"); - printf ("\tm68k_write_memory_8(memp + 4, src >> 8); m68k_write_memory_8(memp + 6, src);\n"); - } - if(curi->size==sz_long) insn_n_cycles=24; else insn_n_cycles=16; - break; - case i_MVPMR: - printf ("\tuint32_t memp = m68k_areg(regs, srcreg) + (int32_t)(int16_t)%s;\n", gen_nextiword ()); - genamode (curi->dmode, "dstreg", curi->size, "dst", 2, 0); - if (curi->size == sz_word) { - printf ("\tuint16_t val = (m68k_read_memory_8(memp) << 8) + m68k_read_memory_8(memp + 2);\n"); - } else { - printf ("\tuint32_t val = (m68k_read_memory_8(memp) << 24) + (m68k_read_memory_8(memp + 2) << 16)\n"); - printf (" + (m68k_read_memory_8(memp + 4) << 8) + m68k_read_memory_8(memp + 6);\n"); - } - genastore ("val", curi->dmode, "dstreg", curi->size, "dst"); - if(curi->size==sz_long) insn_n_cycles=24; else insn_n_cycles=16; - break; - case i_MOVE: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode (curi->dmode, "dstreg", curi->size, "dst", 2, 0); - - /* [NP] genamode counts 2 cycles if dest is -(An), this is wrong. */ - /* For move dest (An), (An)+ and -(An) take the same time */ - /* (for other instr, dest -(An) really takes 2 cycles more) */ - if ( curi->dmode == Apdi ) - insn_n_cycles -= 2; /* correct the wrong cycle count for -(An) */ - - genflags (flag_logical, curi->size, "src", "", ""); - genastore ("src", curi->dmode, "dstreg", curi->size, "dst"); - 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 ("\tuint32_t val = (int32_t)(int16_t)src;\n"); - } else { - printf ("\tuint32_t val = src;\n"); - } - genastore ("val", curi->dmode, "dstreg", sz_long, "dst"); - break; - case i_MVSR2: /* Move from SR */ - 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 (curi->smode==Dreg) insn_n_cycles += 2; else insn_n_cycles += 4; - break; - case i_MV2SR: /* Move to SR */ - 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"); - insn_n_cycles += 8; - break; - case i_SWAP: - genamode (curi->smode, "srcreg", sz_long, "src", 1, 0); - start_brace (); - printf ("\tuint32_t dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16);\n"); - genflags (flag_logical, sz_long, "dst", "", ""); - genastore ("dst", curi->smode, "srcreg", sz_long, "src"); - 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"); - insn_n_cycles = 6; - break; - case i_EXT: - genamode (curi->smode, "srcreg", sz_long, "src", 1, 0); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuint32_t dst = (int32_t)(int8_t)src;\n"); break; - case sz_word: printf ("\tuint16_t dst = (int16_t)(int8_t)src;\n"); break; - case sz_long: printf ("\tuint32_t dst = (int32_t)(int16_t)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"); - 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,M68000_EXC_SRC_CPU);\n"); - m68k_pc_offset = 0; - break; - case i_MVR2USP: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - printf ("\tregs.usp = src;\n"); - break; - case i_MVUSP2R: - genamode (curi->smode, "srcreg", curi->size, "src", 2, 0); - genastore ("regs.usp", curi->smode, "srcreg", curi->size, "src"); - break; - case i_RESET: -//JLH:Not needed printf ("\tcustomreset();\n"); - insn_n_cycles = 132; /* I am not so sure about this!? - Thothy */ - break; - case i_NOP: - 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"); - insn_n_cycles = 4; - break; - case i_RTE: - if (cpu_level == 0) { - genamode (Aipi, "7", sz_word, "sr", 1, 0); - genamode (Aipi, "7", sz_long, "pc", 1, 0); - printf ("\tregs.sr = sr; m68k_setpc_rte(pc);\n"); - fill_prefetch_0 (); - printf ("\tMakeFromSR();\n"); - } else { - int old_brace_level = n_braces; - if (next_cpu_level < 0) - next_cpu_level = 0; - printf ("\tuint16_t newsr; uint32_t 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,M68000_EXC_SRC_CPU); 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; - insn_n_cycles = 20; - break; - case i_RTD: - genamode (Aipi, "7", sz_long, "pc", 1, 0); - genamode (curi->smode, "srcreg", curi->size, "offs", 1, 0); - printf ("\tm68k_areg(regs, 7) += offs;\n"); - printf ("\tm68k_setpc_rte(pc);\n"); - fill_prefetch_0 (); - /* PC is set and prefetch filled. */ - m68k_pc_offset = 0; - 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"); - break; - case i_UNLK: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - printf ("\tm68k_areg(regs, 7) = src;\n"); - genamode (Aipi, "7", sz_long, "old", 1, 0); - genastore ("old", curi->smode, "srcreg", curi->size, "src"); - break; - case i_RTS: - printf ("\tm68k_do_rts();\n"); - fill_prefetch_0 (); - m68k_pc_offset = 0; - insn_n_cycles = 16; - break; - case i_TRAPV: - sync_m68k_pc (); - printf ("\tif (GET_VFLG) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto %s; }\n", endlabelstr); - need_endlabel = 1; - break; - case i_RTR: - 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; - insn_n_cycles = 20; - break; - case i_JSR: - genamode (curi->smode, "srcreg", curi->size, "src", 0, 0); - printf ("\tuint32_t oldpc = m68k_getpc () + %d;\n", m68k_pc_offset); - if (using_exception_3) { - printf ("\tif (srca & 1) {\n"); - printf ("\t\tlast_addr_for_exception_3 = oldpc;\n"); - printf ("\t\tlast_fault_for_exception_3 = srca;\n"); - printf ("\t\tlast_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto %s;\n", endlabelstr); - printf ("\t}\n"); - need_endlabel = 1; - } - printf ("\tm68k_do_jsr(m68k_getpc() + %d, srca);\n", m68k_pc_offset); - fill_prefetch_0 (); - m68k_pc_offset = 0; - switch(curi->smode) - { - case Aind: insn_n_cycles=16; break; - case Ad16: insn_n_cycles=18; break; - case Ad8r: insn_n_cycles=22; break; - case absw: insn_n_cycles=18; break; - case absl: insn_n_cycles=20; break; - case PC16: insn_n_cycles=18; break; - case PC8r: insn_n_cycles=22; break; - } - break; - case i_JMP: - genamode (curi->smode, "srcreg", curi->size, "src", 0, 0); - if (using_exception_3) { - printf ("\tif (srca & 1) {\n"); - printf ("\t\tlast_addr_for_exception_3 = m68k_getpc() + 6;\n"); - printf ("\t\tlast_fault_for_exception_3 = srca;\n"); - printf ("\t\tlast_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto %s;\n", endlabelstr); - printf ("\t}\n"); - need_endlabel = 1; - } - printf ("\tm68k_setpc(srca);\n"); - fill_prefetch_0 (); - m68k_pc_offset = 0; - switch(curi->smode) - { - case Aind: insn_n_cycles=8; break; - case Ad16: insn_n_cycles=10; break; - case Ad8r: insn_n_cycles=14; break; - case absw: insn_n_cycles=10; break; - case absl: insn_n_cycles=12; break; - case PC16: insn_n_cycles=10; break; - case PC8r: insn_n_cycles=14; break; - } - break; - case i_BSR: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - printf ("\tint32_t s = (int32_t)src + 2;\n"); - if (using_exception_3) { - printf ("\tif (src & 1) {\n"); - printf ("\t\tlast_addr_for_exception_3 = m68k_getpc() + 2;\n"); // [NP] FIXME should be +4, not +2 (same as DBcc) ? - printf ("\t\tlast_fault_for_exception_3 = m68k_getpc() + s;\n"); - printf ("\t\tlast_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); 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; - insn_n_cycles = 18; - 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,M68000_EXC_SRC_CPU); 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"); // [NP] FIXME should be +4, not +2 (same as DBcc) ? - printf ("\t\tlast_fault_for_exception_3 = m68k_getpc() + 2 + (int32_t)src;\n"); - printf ("\t\tlast_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto %s;\n", endlabelstr); - printf ("\t}\n"); - need_endlabel = 1; - } - printf ("\tm68k_incpc ((int32_t)src + 2);\n"); - fill_prefetch_0 (); - printf ("\treturn 10;\n"); - printf ("didnt_jump:;\n"); - need_endlabel = 1; - insn_n_cycles = (curi->size == sz_byte) ? 8 : 12; - break; - case i_LEA: - genamode (curi->smode, "srcreg", curi->size, "src", 0, 0); - genamode (curi->dmode, "dstreg", curi->size, "dst", 2, 0); - genastore ("srca", curi->dmode, "dstreg", curi->size, "dst"); - /* Set correct cycles: According to the M68K User Manual, LEA takes 12 - * cycles in Ad8r and PC8r mode, but it takes 14 (or 16) cycles on a real ST: */ - if (curi->smode == Ad8r || curi->smode == PC8r) - insn_n_cycles = 14; - 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"); - /* Set correct cycles: */ - switch(curi->smode) - { - case Aind: insn_n_cycles=12; break; - case Ad16: insn_n_cycles=16; break; - /* Note: according to the M68K User Manual, PEA takes 20 cycles for - * the Ad8r mode, but on a real ST, it takes 22 (or 24) cycles! */ - case Ad8r: insn_n_cycles=22; break; - case absw: insn_n_cycles=16; break; - case absl: insn_n_cycles=20; break; - case PC16: insn_n_cycles=16; break; - /* Note: PEA with PC8r takes 20 cycles according to the User Manual, - * but it takes 22 (or 24) cycles on a real ST: */ - case PC8r: insn_n_cycles=22; break; - } - 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\t", 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 + 2;\n"); // [NP] last_addr is pc+4, not pc+2 - printf ("\t\t\tlast_fault_for_exception_3 = m68k_getpc() + 2 + (int32_t)offs + 2;\n"); - printf ("\t\t\tlast_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto %s;\n", endlabelstr); - printf ("\t\t}\n"); - need_endlabel = 1; - } - printf ("\t\t\tm68k_incpc((int32_t)offs + 2);\n"); - fill_prefetch_0 (); - printf ("\t\t\treturn 10;\n"); - printf ("\t\t} else {\n\t\t\t"); - { - int tmp_offset = m68k_pc_offset; - sync_m68k_pc(); /* not so nice to call it here... */ - m68k_pc_offset = tmp_offset; - } - printf ("\t\t\treturn 14;\n"); - printf ("\t\t}\n"); - printf ("\t}\n"); - insn_n_cycles = 12; - need_endlabel = 1; - 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); - genastore ("val", curi->smode, "srcreg", curi->size, "src"); - if (curi->smode!=Dreg) insn_n_cycles += 4; - else - { /* [NP] if result is TRUE, we return 6 instead of 4 */ - printf ("\tif (val) { m68k_incpc(2) ; return 4+2; }\n"); - } - break; - case i_DIVU: - printf ("\tuint32_t oldpc = m68k_getpc();\n"); - genamode (curi->smode, "srcreg", sz_word, "src", 1, 0); - genamode (curi->dmode, "dstreg", sz_long, "dst", 1, 0); - sync_m68k_pc (); - /* Clear V flag when dividing by zero - Alcatraz Odyssey demo depends - * on this (actually, it's doing a DIVS). */ - printf ("\tif (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto %s; } else {\n", endlabelstr); - printf ("\tuint32_t newv = (uint32_t)dst / (uint32_t)(uint16_t)src;\n"); - printf ("\tuint32_t rem = (uint32_t)dst %% (uint32_t)(uint16_t)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) | ((uint32_t)rem << 16);\n"); - genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - printf ("\t}\n"); - printf ("\t}\n"); -// insn_n_cycles += 136; - printf ("\tretcycles = getDivu68kCycles((uint32_t)dst, (uint16_t)src);\n"); - sprintf(exactCpuCycles," return (%i+retcycles);", insn_n_cycles); - need_endlabel = 1; - break; - case i_DIVS: - printf ("\tuint32_t oldpc = m68k_getpc();\n"); - genamode (curi->smode, "srcreg", sz_word, "src", 1, 0); - genamode (curi->dmode, "dstreg", sz_long, "dst", 1, 0); - sync_m68k_pc (); - printf ("\tif (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto %s; } else {\n", endlabelstr); - printf ("\tint32_t newv = (int32_t)dst / (int32_t)(int16_t)src;\n"); - printf ("\tuint16_t rem = (int32_t)dst %% (int32_t)(int16_t)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 (((int16_t)rem < 0) != ((int32_t)dst < 0)) rem = -rem;\n"); - genflags (flag_logical, sz_word, "newv", "", ""); - printf ("\tnewv = (newv & 0xffff) | ((uint32_t)rem << 16);\n"); - genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - printf ("\t}\n"); - printf ("\t}\n"); -// insn_n_cycles += 154; - printf ("\tretcycles = getDivs68kCycles((int32_t)dst, (int16_t)src);\n"); - sprintf(exactCpuCycles," return (%i+retcycles);", insn_n_cycles); - need_endlabel = 1; - 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 ("\tuint32_t newv = (uint32_t)(uint16_t)dst * (uint32_t)(uint16_t)src;\n"); - genflags (flag_logical, sz_long, "newv", "", ""); - genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - /* [NP] number of cycles is 38 + 2n + ea time ; n is the number of 1 bits in src */ - insn_n_cycles += 38-4; /* insn_n_cycles is already initialized to 4 instead of 0 */ - printf ("\twhile (src) { if (src & 1) retcycles++; src = (uint16_t)src >> 1; }\n"); - sprintf(exactCpuCycles," return (%i+retcycles*2);", insn_n_cycles); - 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 ("\tuint32_t newv = (int32_t)(int16_t)dst * (int32_t)(int16_t)src;\n"); - printf ("\tuint32_t src2;\n"); - genflags (flag_logical, sz_long, "newv", "", ""); - genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - /* [NP] number of cycles is 38 + 2n + ea time ; n is the number of 01 or 10 patterns in src expanded to 17 bits */ - insn_n_cycles += 38-4; /* insn_n_cycles is already initialized to 4 instead of 0 */ - printf ("\tsrc2 = ((uint32_t)src) << 1;\n"); - printf ("\twhile (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }\n"); - sprintf(exactCpuCycles," return (%i+retcycles*2);", insn_n_cycles); - break; - case i_CHK: - printf ("\tuint32_t oldpc = m68k_getpc();\n"); - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0); - sync_m68k_pc (); - printf ("\tif ((int32_t)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto %s; }\n", endlabelstr); - printf ("\telse if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto %s; }\n", endlabelstr); - need_endlabel = 1; - insn_n_cycles += 6; - break; - - case i_CHK2: - printf ("\tuint32_t oldpc = m68k_getpc();\n"); - genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0); - genamode (curi->dmode, "dstreg", curi->size, "dst", 2, 0); - printf ("\t{int32_t upper,lower,reg = regs.regs[(extra >> 12) & 15];\n"); - switch (curi->size) { - case sz_byte: - printf ("\tlower=(int32_t)(int8_t)m68k_read_memory_8(dsta); upper = (int32_t)(int8_t)m68k_read_memory_8(dsta+1);\n"); - printf ("\tif ((extra & 0x8000) == 0) reg = (int32_t)(int8_t)reg;\n"); - break; - case sz_word: - printf ("\tlower=(int32_t)(int16_t)m68k_read_memory_16(dsta); upper = (int32_t)(int16_t)m68k_read_memory_16(dsta+2);\n"); - printf ("\tif ((extra & 0x8000) == 0) reg = (int32_t)(int16_t)reg;\n"); - break; - case sz_long: - printf ("\tlower=m68k_read_memory_32(dsta); upper = m68k_read_memory_32(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"); - sync_m68k_pc (); - printf ("\tif ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto %s; }\n}\n", endlabelstr); - need_endlabel = 1; - 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 ("\tuint32_t val = (uint8_t)data;\n"); break; - case sz_word: printf ("\tuint32_t val = (uint16_t)data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tuint32_t sign = (%s & val) >> %d;\n", cmask (curi->size), bit_size (curi->size) - 1); - printf ("\tcnt &= 63;\n"); - printf ("\tretcycles = cnt;\n"); - printf ("\tCLEAR_CZNV;\n"); - printf ("\tif (cnt >= %d) {\n", bit_size (curi->size)); - printf ("\t\tval = %s & (uint32_t)-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)) & (uint32_t)-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(curi->size==sz_long) - strcpy(exactCpuCycles," return (8+retcycles*2);"); - else - strcpy(exactCpuCycles," return (6+retcycles*2);"); - 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 ("\tuint32_t val = (uint8_t)data;\n"); break; - case sz_word: printf ("\tuint32_t val = (uint16_t)data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tcnt &= 63;\n"); - printf ("\tretcycles = cnt;\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\tuint32_t 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(curi->size==sz_long) - strcpy(exactCpuCycles," return (8+retcycles*2);"); - else - strcpy(exactCpuCycles," return (6+retcycles*2);"); - 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 ("\tuint32_t val = (uint8_t)data;\n"); break; - case sz_word: printf ("\tuint32_t val = (uint16_t)data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tcnt &= 63;\n"); - printf ("\tretcycles = cnt;\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(curi->size==sz_long) - strcpy(exactCpuCycles," return (8+retcycles*2);"); - else - strcpy(exactCpuCycles," return (6+retcycles*2);"); - 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 ("\tuint32_t val = (uint8_t)data;\n"); break; - case sz_word: printf ("\tuint32_t val = (uint16_t)data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tcnt &= 63;\n"); - printf ("\tretcycles = cnt;\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(curi->size==sz_long) - strcpy(exactCpuCycles," return (8+retcycles*2);"); - else - strcpy(exactCpuCycles," return (6+retcycles*2);"); - 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 ("\tuint32_t val = (uint8_t)data;\n"); break; - case sz_word: printf ("\tuint32_t val = (uint16_t)data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tcnt &= 63;\n"); - printf ("\tretcycles = cnt;\n"); - printf ("\tCLEAR_CZNV;\n"); - if (source_is_imm1_8 (curi)) - printf ("{"); - else - printf ("\tif (cnt > 0) {\n"); - printf ("\tuint32_t 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(curi->size==sz_long) - strcpy(exactCpuCycles," return (8+retcycles*2);"); - else - strcpy(exactCpuCycles," return (6+retcycles*2);"); - break; - case i_ROR: - 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 ("\tuint32_t val = (uint8_t)data;\n"); break; - case sz_word: printf ("\tuint32_t val = (uint16_t)data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tcnt &= 63;\n"); - printf ("\tretcycles = cnt;\n"); - printf ("\tCLEAR_CZNV;\n"); - if (source_is_imm1_8 (curi)) - printf ("{"); - else - printf ("\tif (cnt > 0) {"); - printf ("\tuint32_t 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", "", ""); - genastore ("val", curi->dmode, "dstreg", curi->size, "data"); - if(curi->size==sz_long) - strcpy(exactCpuCycles," return (8+retcycles*2);"); - else - strcpy(exactCpuCycles," return (6+retcycles*2);"); - 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 ("\tuint32_t val = (uint8_t)data;\n"); break; - case sz_word: printf ("\tuint32_t val = (uint16_t)data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tcnt &= 63;\n"); - printf ("\tretcycles = cnt;\n"); - printf ("\tCLEAR_CZNV;\n"); - if (source_is_imm1_8 (curi)) - printf ("{"); - else { - force_range_for_rox ("cnt", curi->size); - printf ("\tif (cnt > 0) {\n"); - } - printf ("\tcnt--;\n"); - printf ("\t{\n\tuint32_t carry;\n"); - printf ("\tuint32_t 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(curi->size==sz_long) - strcpy(exactCpuCycles," return (8+retcycles*2);"); - else - strcpy(exactCpuCycles," return (6+retcycles*2);"); - 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 ("\tuint32_t val = (uint8_t)data;\n"); break; - case sz_word: printf ("\tuint32_t val = (uint16_t)data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tcnt &= 63;\n"); - printf ("\tretcycles = cnt;\n"); - printf ("\tCLEAR_CZNV;\n"); - if (source_is_imm1_8 (curi)) - printf ("{"); - else { - force_range_for_rox ("cnt", curi->size); - printf ("\tif (cnt > 0) {\n"); - } - printf ("\tcnt--;\n"); - printf ("\t{\n\tuint32_t carry;\n"); - printf ("\tuint32_t 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(curi->size==sz_long) - strcpy(exactCpuCycles," return (8+retcycles*2);"); - else - strcpy(exactCpuCycles," return (6+retcycles*2);"); - break; - case i_ASRW: - genamode (curi->smode, "srcreg", curi->size, "data", 1, 0); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuint32_t val = (uint8_t)data;\n"); break; - case sz_word: printf ("\tuint32_t val = (uint16_t)data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tuint32_t sign = %s & val;\n", cmask (curi->size)); - printf ("\tuint32_t 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"); - break; - case i_ASLW: - genamode (curi->smode, "srcreg", curi->size, "data", 1, 0); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuint32_t val = (uint8_t)data;\n"); break; - case sz_word: printf ("\tuint32_t val = (uint16_t)data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tuint32_t sign = %s & val;\n", cmask (curi->size)); - printf ("\tuint32_t 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"); - break; - case i_LSRW: - genamode (curi->smode, "srcreg", curi->size, "data", 1, 0); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuint32_t val = (uint8_t)data;\n"); break; - case sz_word: printf ("\tuint32_t val = (uint16_t)data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tuint32_t 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"); - break; - case i_LSLW: - genamode (curi->smode, "srcreg", curi->size, "data", 1, 0); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuint8_t val = data;\n"); break; - case sz_word: printf ("\tuint16_t val = data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tuint32_t 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"); - break; - case i_ROLW: - genamode (curi->smode, "srcreg", curi->size, "data", 1, 0); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuint8_t val = data;\n"); break; - case sz_word: printf ("\tuint16_t val = data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tuint32_t 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"); - break; - case i_RORW: - genamode (curi->smode, "srcreg", curi->size, "data", 1, 0); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuint8_t val = data;\n"); break; - case sz_word: printf ("\tuint16_t val = data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tuint32_t 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"); - break; - case i_ROXLW: - genamode (curi->smode, "srcreg", curi->size, "data", 1, 0); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuint8_t val = data;\n"); break; - case sz_word: printf ("\tuint16_t val = data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tuint32_t 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"); - break; - case i_ROXRW: - genamode (curi->smode, "srcreg", curi->size, "data", 1, 0); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuint8_t val = data;\n"); break; - case sz_word: printf ("\tuint16_t val = data;\n"); break; - case sz_long: printf ("\tuint32_t val = data;\n"); break; - default: abort (); - } - printf ("\tuint32_t 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"); - break; - case i_MOVEC2: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace (); - printf ("\tint regno = (src >> 12) & 15;\n"); - printf ("\tuint32_t *regp = regs.regs + regno;\n"); - printf ("\tif (! m68k_movec2(src & 0xFFF, regp)) goto %s;\n", endlabelstr); - break; - case i_MOVE2C: - genamode (curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace (); - printf ("\tint regno = (src >> 12) & 15;\n"); - printf ("\tuint32_t *regp = regs.regs + regno;\n"); - printf ("\tif (! m68k_move2c(src & 0xFFF, regp)) goto %s;\n", endlabelstr); - 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 ("\tuint32_t rn1 = regs.regs[(extra >> 28) & 15];\n"); - printf ("\tuint32_t rn2 = regs.regs[(extra >> 12) & 15];\n"); - if (curi->size == sz_word) { - int old_brace_level = n_braces; - printf ("\tuint16_t dst1 = m68k_read_memory_16(rn1), dst2 = m68k_read_memory_16(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 ("\tm68k_write_memory_16(rn1, m68k_dreg(regs, (extra >> 22) & 7));\n"); - printf ("\tm68k_write_memory_16(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 ("\tuint32_t dst1 = m68k_read_memory_32(rn1), dst2 = m68k_read_memory_32(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 ("\tm68k_write_memory_32(rn1, m68k_dreg(regs, (extra >> 22) & 7));\n"); - printf ("\tm68k_write_memory_32(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 ("\tuint32_t 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) = (int32_t)(int8_t)src;\n"); break; - case sz_word: printf ("\tm68k_areg(regs, (extra >> 12) & 7) = (int32_t)(int16_t)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(),M68000_EXC_SRC_CPU); goto %s; }\n", curi->cc, endlabelstr); - need_endlabel = 1; - break; - case i_DIVL: - sync_m68k_pc (); - start_brace (); - printf ("\tuint32_t 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 ("\tint32_t 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 ("\tuint32_t tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f);\n"); - } else { - printf ("\tuint32_t tmp,bf0,bf1;\n"); - printf ("\tdsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);\n"); - printf ("\tbf0 = m68k_read_memory_32(dsta);bf1 = m68k_read_memory_8(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{ uint32_t 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"); - printf ("\tSET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0);\n"); - printf ("\tSET_ZFLG (tmp == 0);\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) & ((uint32_t)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 & ((uint32_t)0xffffffff >> ((offset & 7) + width))));\n"); - printf ("\tm68k_write_memory_32(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\tm68k_write_memory_8(dsta+4,bf1);\n"); - printf ("\t}\n"); - } - } - break; - case i_PACK: - if (curi->smode == Dreg) { - printf ("\tuint16_t 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 ("\tuint16_t val;\n"); - printf ("\tm68k_areg(regs, srcreg) -= areg_byteinc[srcreg];\n"); - printf ("\tval = (uint16_t)m68k_read_memory_8(m68k_areg(regs, srcreg));\n"); - printf ("\tm68k_areg(regs, srcreg) -= areg_byteinc[srcreg];\n"); - printf ("\tval = (val | ((uint16_t)m68k_read_memory_8(m68k_areg(regs, srcreg)) << 8)) + %s;\n", gen_nextiword ()); - printf ("\tm68k_areg(regs, dstreg) -= areg_byteinc[dstreg];\n"); - printf ("\tm68k_write_memory_8(m68k_areg(regs, dstreg),((val >> 4) & 0xf0) | (val & 0xf));\n"); - } - break; - case i_UNPK: - if (curi->smode == Dreg) { - printf ("\tuint16_t 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 ("\tuint16_t val;\n"); - printf ("\tm68k_areg(regs, srcreg) -= areg_byteinc[srcreg];\n"); - printf ("\tval = (uint16_t)m68k_read_memory_8(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 ("\tm68k_write_memory_8(m68k_areg(regs, dstreg),val);\n"); - printf ("\tm68k_areg(regs, dstreg) -= areg_byteinc[dstreg];\n"); - printf ("\tm68k_write_memory_8(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( curi->smode!=Dreg ) insn_n_cycles += 2; - 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 ("\tuint32_t 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 ("\tuint32_t 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_CINVL: - case i_CINVP: - case i_CINVA: - case i_CPUSHL: - case i_CPUSHP: - case i_CPUSHA: - break; - case i_MOVE16: - if ((opcode & 0xfff8) == 0xf620) { - /* MOVE16 (Ax)+,(Ay)+ */ - printf ("\tuint32_t mems = m68k_areg(regs, srcreg) & ~15, memd;\n"); - printf ("\tdstreg = (%s >> 12) & 7;\n", gen_nextiword()); - printf ("\tmemd = m68k_areg(regs, dstreg) & ~15;\n"); - printf ("\tm68k_write_memory_32(memd, m68k_read_memory_32(mems));\n"); - printf ("\tm68k_write_memory_32(memd+4, m68k_read_memory_32(mems+4));\n"); - printf ("\tm68k_write_memory_32(memd+8, m68k_read_memory_32(mems+8));\n"); - printf ("\tm68k_write_memory_32(memd+12, m68k_read_memory_32(mems+12));\n"); - printf ("\tif (srcreg != dstreg)\n"); - printf ("\tm68k_areg(regs, srcreg) += 16;\n"); - printf ("\tm68k_areg(regs, dstreg) += 16;\n"); - } else { - /* Other variants */ - genamode (curi->smode, "srcreg", curi->size, "mems", 0, 2); - genamode (curi->dmode, "dstreg", curi->size, "memd", 0, 2); - printf ("\tmemsa &= ~15;\n"); - printf ("\tmemda &= ~15;\n"); - printf ("\tm68k_write_memory_32(memda, m68k_read_memory_32(memsa));\n"); - printf ("\tm68k_write_memory_32(memda+4, m68k_read_memory_32(memsa+4));\n"); - printf ("\tm68k_write_memory_32(memda+8, m68k_read_memory_32(memsa+8));\n"); - printf ("\tm68k_write_memory_32(memda+12, m68k_read_memory_32(memsa+12));\n"); - if ((opcode & 0xfff8) == 0xf600) - printf ("\tm68k_areg(regs, srcreg) += 16;\n"); - else if ((opcode & 0xfff8) == 0xf608) - printf ("\tm68k_areg(regs, dstreg) += 16;\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) -{ -//JLH:no fprintf(f, "#include \"sysdeps.h\"\n"); -//JLH:no fprintf(f, "#include \"hatari-glue.h\"\n"); -//JLH:no fprintf(f, "#include \"maccess.h\"\n"); -//JLH:no fprintf(f, "#include \"memory.h\"\n"); -//JLH:no fprintf(f, "#include \"newcpu.h\"\n"); - fprintf(f, "#include \"cpudefs.h\"\n"); - fprintf(f, "#include \"cpuextra.h\"\n"); - fprintf(f, "#include \"inlines.h\"\n"); - fprintf(f, "#include \"cputbl.h\"\n"); - fprintf(f, "#define CPUFUNC(x) x##_ff\n" - "#ifdef NOFLAGS\n" - "#include \"noflags.h\"\n" - "#endif\n"); -} - -// JLH: Since this is stuff that should be generated in a file that creates -// constants, it's in here now. :-P -static void GenerateTables(FILE * f) -{ - int i, j; - - fprintf(f, "\nconst int areg_byteinc[] = { 1, 1, 1, 1, 1, 1, 1, 2 };\n"); - fprintf(f, "const int imm8_table[] = { 8, 1, 2, 3, 4, 5, 6, 7 };\n\n"); - fprintf(f, "const int movem_index1[256] = {\n"); - - for(i=0; i<256; i++) - { - for(j=0; j<8; j++) - if (i & (1 << j)) - break; - - fprintf(f, "0x%02X, ", j); - - if ((i % 16) == 15) - fprintf(f, "\n"); - } - - fprintf(f, "};\n\n"); - fprintf(f, "const int movem_index2[256] = {\n"); - - for(i=0; i<256; i++) - { - for(j=0; j<8; j++) - if (i & (1 << j)) - break; - - fprintf(f, "0x%02X, ", 7 - j); - - if ((i % 16) == 15) - fprintf(f, "\n"); - } - - fprintf(f, "};\n\n"); - fprintf(f, "const int movem_next[256] = {\n"); - - for(i=0; i<256; i++) - { - for(j=0; j<8; j++) - if (i & (1 << j)) - break; - - fprintf(f, "0x%02X, ", i & (~(1 << j))); - - if ((i % 16) == 15) - fprintf(f, "\n"); - } - - fprintf(f, "};\n\n"); -} - -static int postfix; - -static void generate_one_opcode (int rp) -{ - int i; - uint16_t smsk, dmsk; - long int opcode = opcode_map[rp]; - - exactCpuCycles[0] = 0; /* Default: not used */ - - 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 (opcode_next_clev[rp] != cpu_level) { - fprintf (stblfile, "{ CPUFUNC(op_%lx_%d), 0, %ld }, /* %s */\n", opcode, opcode_last_postfix[rp], - opcode, lookuptab[i].name); - return; - } - fprintf (stblfile, "{ CPUFUNC(op_%lx_%d), 0, %ld }, /* %s */\n", opcode, postfix, opcode, lookuptab[i].name); - fprintf (headerfile, "extern cpuop_func op_%lx_%d_nf;\n", opcode, postfix); - fprintf (headerfile, "extern cpuop_func op_%lx_%d_ff;\n", opcode, postfix); - printf ("unsigned long CPUFUNC(op_%lx_%d)(uint32_t 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; - case 7: smsk = 3; 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 ("\tuint32_t srcreg = (int32_t)(int8_t)%d;\n", (int) table68k[opcode].sreg); - else - printf ("\tuint32_t srcreg = %d;\n", (int) table68k[opcode].sreg); - } else { - char source[100]; - int pos = table68k[opcode].spos; - - if (pos) - sprintf (source, "((opcode >> %d) & %d)", pos, smsk); - else - sprintf (source, "(opcode & %d)", smsk); - - if (table68k[opcode].stype == 3) - printf ("\tuint32_t srcreg = imm8_table[%s];\n", source); - else if (table68k[opcode].stype == 1) - printf ("\tuint32_t srcreg = (int32_t)(int8_t)%s;\n", source); - else - printf ("\tuint32_t 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 ("\tuint32_t dstreg = (int32_t)(int8_t)%d;\n", (int) table68k[opcode].dreg); - else - printf ("\tuint32_t 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 ("\tuint32_t dstreg = (opcode >> %d) & %d;\n", - pos, dmsk); - else - printf ("\tuint32_t dstreg = opcode & %d;\n", dmsk); - } - } - need_endlabel = 0; - endlabelno++; - sprintf (endlabelstr, "endlabel%d", endlabelno); - if(table68k[opcode].mnemo==i_ASR || table68k[opcode].mnemo==i_ASL || table68k[opcode].mnemo==i_LSR || table68k[opcode].mnemo==i_LSL - || table68k[opcode].mnemo==i_ROL || table68k[opcode].mnemo==i_ROR || table68k[opcode].mnemo==i_ROXL || table68k[opcode].mnemo==i_ROXR - || table68k[opcode].mnemo==i_MVMEL || table68k[opcode].mnemo==i_MVMLE - || table68k[opcode].mnemo==i_MULU || table68k[opcode].mnemo==i_MULS - || table68k[opcode].mnemo==i_DIVU || table68k[opcode].mnemo==i_DIVS ) - printf("\tunsigned int retcycles = 0;\n"); - gen_opcode (opcode); - if (need_endlabel) - printf ("%s: ;\n", endlabelstr); - - if (strlen(exactCpuCycles) > 0) - printf("%s\n",exactCpuCycles); - else - printf ("return %d;\n", insn_n_cycles); - /* Now patch in the instruction cycles at the beginning of the function: */ - fseek(stdout, nCurInstrCycPos, SEEK_SET); - printf("%d;", insn_n_cycles); - fseek(stdout, 0, SEEK_END); - - printf ("}\n"); - opcode_next_clev[rp] = next_cpu_level; - opcode_last_postfix[rp] = postfix; -} - -static void generate_func(void) -{ - int i, j, rp; - - using_prefetch = 0; - using_exception_3 = 0; -//JLH: -// for(i=0; i<6; i++) -//For some reason, this doesn't work properly. Seems something is making a bad -//assumption somewhere. -//and it's probably in opcode_next_clev[rp]... - for(i=4; i<6; i++) - { - cpu_level = 4 - i; - - //JLH - for(rp=0; rp68000 cpus, so this is bogus. -#if 0 - /* A traced STOP instruction drops through immediately without - actually stopping. */ - if (stop && (regs.spcflags & SPCFLAG_DOTRACE) == 0) - regs.spcflags |= SPCFLAG_STOP; -#endif } STATIC_INLINE void m68k_do_rts(void) @@ -97,103 +78,27 @@ STATIC_INLINE void m68k_do_jsr(uint32_t oldpc, uint32_t dest) m68k_setpc(dest); } -#if 0 -//These do_get_mem_* functions are only used in newcpu... -//What it does is use a pointer to make instruction fetching quicker, -//though it probably leads to more problems than it solves. Something to -//decide using a profiler... -#define get_ibyte(o) do_get_mem_byte(regs.pc_p + (o) + 1) -#define get_iword(o) do_get_mem_word(regs.pc_p + (o)) -#define get_ilong(o) do_get_mem_long(regs.pc_p + (o)) -#else -// For now, we'll punt this crap... -// (Also, notice that the byte read is at address + 1...) #define get_ibyte(o) m68k_read_memory_8(regs.pc + (o) + 1) #define get_iword(o) m68k_read_memory_16(regs.pc + (o)) #define get_ilong(o) m68k_read_memory_32(regs.pc + (o)) -#endif -// We don't use this crap, so let's comment out for now... STATIC_INLINE void refill_prefetch(uint32_t currpc, uint32_t offs) { -#if 0 - uint32_t t = (currpc + offs) & ~1; - int32_t pc_p_offs = t - currpc; - uint8_t * ptr = regs.pc_p + pc_p_offs; - uint32_t r; - -#ifdef UNALIGNED_PROFITABLE - r = *(uint32_t *)ptr; - regs.prefetch = r; -#else - r = do_get_mem_long(ptr); - do_put_mem_long(®s.prefetch, r); -#endif - /* printf ("PC %lx T %lx PCPOFFS %d R %lx\n", currpc, t, pc_p_offs, r); */ - regs.prefetch_pc = t; -#endif } STATIC_INLINE uint32_t get_ibyte_prefetch(int32_t o) { -#if 0 - uint32_t currpc = m68k_getpc(); - uint32_t addr = currpc + o + 1; - uint32_t offs = addr - regs.prefetch_pc; - - if (offs > 3) - { - refill_prefetch(currpc, o + 1); - offs = addr - regs.prefetch_pc; - } - - uint32_t v = do_get_mem_byte(((uint8_t *)®s.prefetch) + offs); - - if (offs >= 2) - refill_prefetch(currpc, 2); - - /* printf ("get_ibyte PC %lx ADDR %lx OFFS %lx V %lx\n", currpc, addr, offs, v); */ - return v; -#else return get_ibyte(o); -#endif } STATIC_INLINE uint32_t get_iword_prefetch(int32_t o) { -#if 0 - uint32_t currpc = m68k_getpc(); - uint32_t addr = currpc + o; - uint32_t offs = addr - regs.prefetch_pc; - - if (offs > 3) - { - refill_prefetch(currpc, o); - offs = addr - regs.prefetch_pc; - } - - uint32_t v = do_get_mem_word(((uint8_t *)®s.prefetch) + offs); - - if (offs >= 2) - refill_prefetch(currpc, 2); - -/* printf ("get_iword PC %lx ADDR %lx OFFS %lx V %lx\n", currpc, addr, offs, v); */ - return v; -#else return get_iword(o); -#endif } STATIC_INLINE uint32_t get_ilong_prefetch(int32_t o) { -#if 0 - uint32_t v = get_iword_prefetch(o); - v <<= 16; - v |= get_iword_prefetch(o + 2); - return v; -#else return get_ilong(o); -#endif } STATIC_INLINE void fill_prefetch_0(void) diff --git a/waterbox/virtualjaguar/src/m68000/m68kdasm.c b/waterbox/virtualjaguar/src/m68000/m68kdasm.c deleted file mode 100644 index ab31cdb7bb..0000000000 --- a/waterbox/virtualjaguar/src/m68000/m68kdasm.c +++ /dev/null @@ -1,421 +0,0 @@ -// -// m68kdasm.c: 68000 instruction disassembly -// -// Originally part of the UAE 68000 cpu core -// by Bernd Schmidt -// -// Adapted to Virtual Jaguar by James Hammons -// -// This file is distributed under the GNU Public License, version 3 or at your -// option any later version. Read the file GPLv3 for details. -// - -#include -#include "cpudefs.h" -#include "cpuextra.h" -#include "inlines.h" -#include "readcpu.h" - - -// Stuff from m68kinterface.c -extern unsigned long IllegalOpcode(uint32_t opcode); -extern cpuop_func * cpuFunctionTable[65536]; - -// Prototypes -void HandleMovem(char * output, uint16_t data, int direction); - -// Local "global" variables -static long int m68kpc_offset; - -#if 0 -#define get_ibyte_1(o) get_byte(regs.pc + (regs.pc_p - regs.pc_oldp) + (o) + 1) -#define get_iword_1(o) get_word(regs.pc + (regs.pc_p - regs.pc_oldp) + (o)) -#define get_ilong_1(o) get_long(regs.pc + (regs.pc_p - regs.pc_oldp) + (o)) -#else -#define get_ibyte_1(o) m68k_read_memory_8(regs.pc + (o) + 1) -#define get_iword_1(o) m68k_read_memory_16(regs.pc + (o)) -#define get_ilong_1(o) m68k_read_memory_32(regs.pc + (o)) -#endif - - -//int32_t ShowEA(FILE * f, int reg, amodes mode, wordsizes size, char * buf) -int32_t ShowEA(int mnemonic, int reg, amodes mode, wordsizes size, char * buf) -{ - uint16_t dp; - int8_t disp8; - int16_t disp16; - int r; - uint32_t dispreg; - uint32_t addr; - int32_t offset = 0; - char buffer[80]; - - switch (mode) - { - case Dreg: - sprintf(buffer,"D%d", reg); - break; - case Areg: - sprintf(buffer,"A%d", reg); - break; - case Aind: - sprintf(buffer,"(A%d)", reg); - break; - case Aipi: - sprintf(buffer,"(A%d)+", reg); - break; - case Apdi: - sprintf(buffer,"-(A%d)", reg); - break; - case Ad16: - disp16 = get_iword_1(m68kpc_offset); m68kpc_offset += 2; - addr = m68k_areg(regs,reg) + (int16_t)disp16; - sprintf(buffer,"(A%d,$%X) == $%lX", reg, disp16 & 0xFFFF, - (unsigned long)addr); - break; - case Ad8r: - dp = get_iword_1(m68kpc_offset); m68kpc_offset += 2; - disp8 = dp & 0xFF; - r = (dp & 0x7000) >> 12; - dispreg = (dp & 0x8000 ? m68k_areg(regs,r) : m68k_dreg(regs,r)); - - if (!(dp & 0x800)) - dispreg = (int32_t)(int16_t)(dispreg); - - dispreg <<= (dp >> 9) & 3; - - if (dp & 0x100) - { - int32_t outer = 0, disp = 0; - int32_t base = m68k_areg(regs,reg); - char name[10]; - sprintf (name,"A%d, ",reg); - if (dp & 0x80) { base = 0; name[0] = 0; } - if (dp & 0x40) dispreg = 0; - if ((dp & 0x30) == 0x20) { disp = (int32_t)(int16_t)get_iword_1(m68kpc_offset); m68kpc_offset += 2; } - if ((dp & 0x30) == 0x30) { disp = get_ilong_1(m68kpc_offset); m68kpc_offset += 4; } - base += disp; - - if ((dp & 0x3) == 0x2) { outer = (int32_t)(int16_t)get_iword_1(m68kpc_offset); m68kpc_offset += 2; } - if ((dp & 0x3) == 0x3) { outer = get_ilong_1(m68kpc_offset); m68kpc_offset += 4; } - - if (!(dp & 4)) base += dispreg; - if (dp & 3) base = m68k_read_memory_32(base); - if (dp & 4) base += dispreg; - - addr = base + outer; - sprintf(buffer,"(%s%c%d.%c*%d+%ld)+%ld == $%lX", name, - dp & 0x8000 ? 'A' : 'D', (int)r, dp & 0x800 ? 'L' : 'W', - 1 << ((dp >> 9) & 3), - (long)disp, (long)outer, (unsigned long)addr); - } - else - { - addr = m68k_areg(regs,reg) + (int32_t)((int8_t)disp8) + dispreg; - sprintf (buffer,"(A%d, %c%d.%c*%d, $%X) == $%lX", reg, - dp & 0x8000 ? 'A' : 'D', (int)r, dp & 0x800 ? 'L' : 'W', - 1 << ((dp >> 9) & 3), disp8, (unsigned long)addr); - } - break; - case PC16: - addr = m68k_getpc() + m68kpc_offset; - disp16 = get_iword_1(m68kpc_offset); m68kpc_offset += 2; - addr += (int16_t)disp16; - sprintf(buffer,"(PC, $%X) == $%lX", disp16 & 0xFFFF, (unsigned long)addr); - break; - case PC8r: - addr = m68k_getpc() + m68kpc_offset; - dp = get_iword_1(m68kpc_offset); m68kpc_offset += 2; - disp8 = dp & 0xFF; - r = (dp & 0x7000) >> 12; - dispreg = dp & 0x8000 ? m68k_areg(regs,r) : m68k_dreg(regs,r); - - if (!(dp & 0x800)) - dispreg = (int32_t)(int16_t)(dispreg); - - dispreg <<= (dp >> 9) & 3; - - if (dp & 0x100) - { - int32_t outer = 0,disp = 0; - int32_t base = addr; - char name[10]; - sprintf (name,"PC, "); - if (dp & 0x80) { base = 0; name[0] = 0; } - if (dp & 0x40) dispreg = 0; - if ((dp & 0x30) == 0x20) { disp = (int32_t)(int16_t)get_iword_1(m68kpc_offset); m68kpc_offset += 2; } - if ((dp & 0x30) == 0x30) { disp = get_ilong_1(m68kpc_offset); m68kpc_offset += 4; } - base += disp; - - if ((dp & 0x3) == 0x2) - { - outer = (int32_t)(int16_t)get_iword_1(m68kpc_offset); - m68kpc_offset += 2; - } - - if ((dp & 0x3) == 0x3) - { - outer = get_ilong_1(m68kpc_offset); - m68kpc_offset += 4; - } - - if (!(dp & 4)) base += dispreg; - if (dp & 3) base = m68k_read_memory_32(base); - if (dp & 4) base += dispreg; - - addr = base + outer; - sprintf(buffer,"(%s%c%d.%c*%d+%ld)+%ld == $%lX", name, - dp & 0x8000 ? 'A' : 'D', (int)r, dp & 0x800 ? 'L' : 'W', - 1 << ((dp >> 9) & 3), (long)disp, (long)outer, (unsigned long)addr); - } - else - { - addr += (int32_t)((int8_t)disp8) + dispreg; - sprintf(buffer,"(PC, %c%d.%c*%d, $%X) == $%lX", dp & 0x8000 ? 'A' : 'D', - (int)r, dp & 0x800 ? 'L' : 'W', 1 << ((dp >> 9) & 3), - disp8, (unsigned long)addr); - } - break; - case absw: - sprintf(buffer,"$%lX", (unsigned long)(int32_t)(int16_t)get_iword_1(m68kpc_offset)); - m68kpc_offset += 2; - break; - case absl: - sprintf(buffer,"$%lX", (unsigned long)get_ilong_1(m68kpc_offset)); - m68kpc_offset += 4; - break; - case imm: - switch (size) - { - case sz_byte: - sprintf(buffer,"#$%X", (unsigned int)(get_iword_1(m68kpc_offset) & 0xFF)); - m68kpc_offset += 2; - break; - case sz_word: - sprintf(buffer,"#$%X", (unsigned int)(get_iword_1(m68kpc_offset) & 0xFFFF)); - m68kpc_offset += 2; - break; - case sz_long: - sprintf(buffer,"#$%lX", (unsigned long)(get_ilong_1(m68kpc_offset))); - m68kpc_offset += 4; - break; - default: - break; - } - break; - case imm0: - offset = (int32_t)(int8_t)get_iword_1(m68kpc_offset); - m68kpc_offset += 2; - sprintf(buffer,"#$%X", (unsigned int)(offset & 0xFF)); - break; - case imm1: - offset = (int32_t)(int16_t)get_iword_1(m68kpc_offset); - m68kpc_offset += 2; - - if (mnemonic == i_MVMEL) - HandleMovem(buffer, offset, 0); - else if (mnemonic == i_MVMLE) - HandleMovem(buffer, offset, 1); - else - sprintf(buffer,"#$%X", (unsigned int)(offset & 0xFFFF)); - - break; - case imm2: - offset = (int32_t)get_ilong_1(m68kpc_offset); - m68kpc_offset += 4; - sprintf(buffer,"#$%lX", (unsigned long)(offset & 0xFFFFFFFF)); - break; - case immi: - offset = (int32_t)(int8_t)(reg & 0xFF); - sprintf(buffer,"#$%lX", (unsigned long)(offset & 0xFFFFFFFF)); - break; - default: - break; - } - -// if (buf == 0) -// fprintf(f, "%s", buffer); -// else - strcat(buf, buffer); - - return offset; -} - - -void HandleMovem(char * output, uint16_t data, int direction) -{ - uint16_t ascending[16] = { - 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080, - 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x8000 }; - uint16_t descending[16] = { - 0x8000, 0x4000, 0x2000, 0x1000, 0x0800, 0x0400, 0x0200, 0x0100, - 0x0080, 0x0040, 0x0020, 0x0010, 0x0008, 0x0004, 0x0002, 0x0001 }; - - int i, j, first, runLength, firstPrint = 1; - char buf[16]; - uint16_t * bitMask; - - bitMask = (direction ? descending : ascending); - output[0] = 0; - - // Handle D0-D7... - for(i=0; i<8; i++) - { - if (data & bitMask[i]) - { - first = i; - runLength = 0; - - for(j=i+1; j<8 && (data & bitMask[j]); j++) - runLength++; - - i += runLength; - - if (firstPrint) - firstPrint = 0; - else - strcat(output, "/"); - - sprintf(buf, "D%d", first); - strcat(output, buf); - - if (runLength > 0) - { - sprintf(buf, "-D%d", first + runLength); - strcat(output, buf); - } - } - } - - // Handle A0-A7... - for(i=0; i<8; i++) - { - if (data & bitMask[i + 8]) - { - first = i; - runLength = 0; - - for(j=i+1; j<8 && (data & bitMask[j+8]); j++) - runLength++; - - i += runLength; - - if (firstPrint) - firstPrint = 0; - else - strcat(output, "/"); - - sprintf(buf, "A%d", first); - strcat(output, buf); - - if (runLength > 0) - { - sprintf(buf, "-A%d", first + runLength); - strcat(output, buf); - } - } - } -} - - -unsigned int M68KDisassemble(char * output, uint32_t addr) -{ - char f[256], str[256]; - char src[256], dst[256]; - static const char * const ccnames[] = - { "RA","RN","HI","LS","CC","CS","NE","EQ", - "VC","VS","PL","MI","GE","LT","GT","LE" }; - - str[0] = 0; - output[0] = 0; - uint32_t newpc = 0; - m68kpc_offset = addr - m68k_getpc(); - long int pcOffsetSave = m68kpc_offset; - int opwords; - char instrname[20]; - const struct mnemolookup * lookup; - - uint32_t opcode = get_iword_1(m68kpc_offset); - m68kpc_offset += 2; - - if (cpuFunctionTable[opcode] == IllegalOpcode) - opcode = 0x4AFC; - - struct instr * dp = table68k + opcode; - - for(lookup=lookuptab; lookup->mnemo!=dp->mnemo; lookup++) - ; - - strcpy(instrname, lookup->name); - char * ccpt = strstr(instrname, "cc"); - - if (ccpt) - strncpy(ccpt, ccnames[dp->cc], 2); - - sprintf(f, "%s", instrname); - strcat(str, f); - - switch (dp->size) - { - case sz_byte: strcat(str, ".B\t"); break; - case sz_word: strcat(str, ".W\t"); break; - case sz_long: strcat(str, ".L\t"); break; - default: strcat(str, "\t"); break; - } - - // Get source and destination operands (if any) - src[0] = dst[0] = f[0] = 0; - - if (dp->suse) - newpc = m68k_getpc() + m68kpc_offset - + ShowEA(dp->mnemo, dp->sreg, dp->smode, dp->size, src); - - if (dp->duse) - newpc = m68k_getpc() + m68kpc_offset - + ShowEA(dp->mnemo, dp->dreg, dp->dmode, dp->size, dst); - - // Handle execptions to the standard rules - if (dp->mnemo == i_BSR || dp->mnemo == i_Bcc) - sprintf(f, "$%lX", (long)newpc); - else if (dp->mnemo == i_DBcc) - sprintf(f, "%s, $%lX", src, (long)newpc); - else if (dp->mnemo == i_MVMEL) - sprintf(f, "%s, %s", dst, src); - else - sprintf(f, "%s%s%s", src, (dp->suse && dp->duse ? ", " : ""), dst); - - strcat(str, f); - - if (ccpt) - { - sprintf(f, " (%s)", (cctrue(dp->cc) ? "true" : "false")); - strcat(str, f); - } - - // Add byte(s) display to front of disassembly - long int numberOfBytes = m68kpc_offset - pcOffsetSave; - - for(opwords=0; opwords<5; opwords++) - { - if (((opwords + 1) * 2) <= numberOfBytes) - sprintf(f, "%04X ", get_iword_1(pcOffsetSave + opwords * 2)); - else - sprintf(f, " "); - - strcat(output, f); - } - - strcat(output, str); - - return numberOfBytes; -} - - -// -// Disassemble one instruction at pc and store in str_buff -// -unsigned int m68k_disassemble(char * str_buff, unsigned int pc, unsigned int cpu_type) -{ - return M68KDisassemble(str_buff, pc); -} - diff --git a/waterbox/virtualjaguar/src/m68000/m68kinterface.c b/waterbox/virtualjaguar/src/m68000/m68kinterface.c index d896cdfe10..d51fc37b39 100644 --- a/waterbox/virtualjaguar/src/m68000/m68kinterface.c +++ b/waterbox/virtualjaguar/src/m68000/m68kinterface.c @@ -12,7 +12,6 @@ // #include "m68kinterface.h" -//#include #include "cpudefs.h" #include "inlines.h" #include "cpuextra.h" @@ -35,18 +34,8 @@ #define EXCEPTION_INTERRUPT_AUTOVECTOR 24 #define EXCEPTION_TRAP_BASE 32 -// These are found in obj/cpustbl.c (generated by gencpu) - -//extern const struct cputbl op_smalltbl_0_ff[]; /* 68040 */ -//extern const struct cputbl op_smalltbl_1_ff[]; /* 68020 + 68881 */ -//extern const struct cputbl op_smalltbl_2_ff[]; /* 68020 */ -//extern const struct cputbl op_smalltbl_3_ff[]; /* 68010 */ -extern const struct cputbl op_smalltbl_4_ff[]; /* 68000 */ extern const struct cputbl op_smalltbl_5_ff[]; /* 68000 slow but compatible. */ -// Externs, supplied by the user... -//extern int irq_ack_handler(int); - // Function prototypes... STATIC_INLINE void m68ki_check_interrupts(void); void m68ki_exception_interrupt(uint32_t intLevel); @@ -60,158 +49,34 @@ void m68k_set_irq2(unsigned int intLevel); static int32_t initialCycles; cpuop_func * cpuFunctionTable[65536]; -// By virtue of the fact that m68k_set_irq() can be called asychronously by -// another thread, we need something along the lines of this: static int checkForIRQToHandle = 0; -//static pthread_mutex_t executionLock = PTHREAD_MUTEX_INITIALIZER; static int IRQLevelToHandle = 0; -#if 0 -#define ADD_CYCLES(A) m68ki_remaining_cycles += (A) -#define USE_CYCLES(A) m68ki_remaining_cycles -= (A) -#define SET_CYCLES(A) m68ki_remaining_cycles = A -#define GET_CYCLES() m68ki_remaining_cycles -#define USE_ALL_CYCLES() m68ki_remaining_cycles = 0 - -#define CPU_INT_LEVEL m68ki_cpu.int_level /* ASG: changed from CPU_INTS_PENDING */ -#define CPU_INT_CYCLES m68ki_cpu.int_cycles /* ASG */ -#define CPU_STOPPED m68ki_cpu.stopped -#define CPU_PREF_ADDR m68ki_cpu.pref_addr -#define CPU_PREF_DATA m68ki_cpu.pref_data -#define CPU_ADDRESS_MASK m68ki_cpu.address_mask -#define CPU_SR_MASK m68ki_cpu.sr_mask -#endif - -#define CPU_DEBUG - - -void Dasm(uint32_t offset, uint32_t qt) -{ -#ifdef CPU_DEBUG -// back up a few instructions... -//offset -= 100; - static char buffer[2048];//, mem[64]; - int pc = offset, oldpc; - uint32_t i; - - for(i=0; i 0); -#if 0 - /* set previous PC to current PC for the next entry into the loop */ - REG_PPC = REG_PC; - - /* ASG: update cycles */ - USE_CYCLES(CPU_INT_CYCLES); - CPU_INT_CYCLES = 0; - - /* return how many clocks we used */ - return m68ki_initial_cycles - GET_CYCLES(); -#else regs.remainingCycles -= regs.interruptCycles; regs.interruptCycles = 0; // Return # of clock cycles used return initialCycles - regs.remainingCycles; -#endif } - void m68k_set_irq(unsigned int intLevel) { - // We need to check for stopped state as well... if (regs.stopped) { m68k_set_irq2(intLevel); return; } - // Since this can be called asynchronously, we need to fix it so that it - // doesn't fuck up the main execution loop. IRQLevelToHandle = intLevel; checkForIRQToHandle = 1; } - /* ASG: rewrote so that the int_level is a mask of the IPL0/IPL1/IPL2 bits */ void m68k_set_irq2(unsigned int intLevel) { -// pthread_mutex_lock(&executionLock); -// printf("m68k_set_irq: Could not get the lock!!!\n"); - int oldLevel = regs.intLevel; regs.intLevel = intLevel; - // A transition from < 7 to 7 always interrupts (NMI) - // Note: Level 7 can also level trigger like a normal IRQ if (oldLevel != 0x07 && regs.intLevel == 0x07) - m68ki_exception_interrupt(7); // Edge triggered level 7 (NMI) + m68ki_exception_interrupt(7); else - m68ki_check_interrupts(); // Level triggered (IRQ) - -// pthread_mutex_unlock(&executionLock); + m68ki_check_interrupts(); } - // Check for interrupts STATIC_INLINE void m68ki_check_interrupts(void) { -#if 0 - if(CPU_INT_LEVEL > FLAG_INT_MASK) - m68ki_exception_interrupt(CPU_INT_LEVEL>>8); -#else if (regs.intLevel > regs.intmask) m68ki_exception_interrupt(regs.intLevel); -#endif } - // Service an interrupt request and start exception processing void m68ki_exception_interrupt(uint32_t intLevel) { -#if 0 - uint vector; - uint sr; - uint new_pc; - - /* Turn off the stopped state */ - CPU_STOPPED &= ~STOP_LEVEL_STOP; - - /* If we are halted, don't do anything */ - if(CPU_STOPPED) - return; - - /* Acknowledge the interrupt */ - vector = m68ki_int_ack(int_level); - - /* Get the interrupt vector */ - if(vector == M68K_INT_ACK_AUTOVECTOR) - /* Use the autovectors. This is the most commonly used implementation */ - vector = EXCEPTION_INTERRUPT_AUTOVECTOR+int_level; - else if(vector == M68K_INT_ACK_SPURIOUS) - /* Called if no devices respond to the interrupt acknowledge */ - vector = EXCEPTION_SPURIOUS_INTERRUPT; - else if(vector > 255) - { - M68K_DO_LOG_EMU((M68K_LOG_FILEHANDLE "%s at %08x: Interrupt acknowledge returned invalid vector $%x\n", - m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC), vector)); - return; - } - - /* Start exception processing */ - sr = m68ki_init_exception(); - - /* Set the interrupt mask to the level of the one being serviced */ - FLAG_INT_MASK = int_level<<8; - - /* Get the new PC */ - new_pc = m68ki_read_data_32((vector<<2) + REG_VBR); - - /* If vector is uninitialized, call the uninitialized interrupt vector */ - if(new_pc == 0) - new_pc = m68ki_read_data_32((EXCEPTION_UNINITIALIZED_INTERRUPT<<2) + REG_VBR); - - /* Generate a stack frame */ - m68ki_stack_frame_0000(REG_PC, sr, vector); - - if(FLAG_M && CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) - { - /* Create throwaway frame */ - m68ki_set_sm_flag(FLAG_S); /* clear M */ - sr |= 0x2000; /* Same as SR in master stack frame except S is forced high */ - m68ki_stack_frame_0001(REG_PC, sr, vector); - } - - m68ki_jump(new_pc); - - /* Defer cycle counting until later */ - CPU_INT_CYCLES += CYC_EXCEPTION[vector]; - -#if !M68K_EMULATE_INT_ACK - /* Automatically clear IRQ if we are not using an acknowledge scheme */ - CPU_INT_LEVEL = 0; -#endif /* M68K_EMULATE_INT_ACK */ -#else - // Turn off the stopped state (N.B.: normal 68K behavior!) regs.stopped = 0; -//JLH: need to add halt state? -// prolly, for debugging/alpine mode... :-/ -// but then again, this should be handled already by the main execution loop :-P - // If we are halted, don't do anything -// if (regs.halted) -// return; - - // Acknowledge the interrupt (NOTE: This is a user supplied function!) uint32_t vector = irq_ack_handler(intLevel); - // Get the interrupt vector if (vector == M68K_INT_ACK_AUTOVECTOR) - // Use the autovectors. This is the most commonly used implementation vector = EXCEPTION_INTERRUPT_AUTOVECTOR + intLevel; else if (vector == M68K_INT_ACK_SPURIOUS) - // Called if no devices respond to the interrupt acknowledge vector = EXCEPTION_SPURIOUS_INTERRUPT; else if (vector > 255) { -// M68K_DO_LOG_EMU((M68K_LOG_FILEHANDLE "%s at %08x: Interrupt acknowledge returned invalid vector $%x\n", -// m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC), vector)); return; } - // Start exception processing uint32_t sr = m68ki_init_exception(); - // Set the interrupt mask to the level of the one being serviced regs.intmask = intLevel; -#if 0 -extern int startM68KTracing; -if (startM68KTracing) -{ - printf("IRQ: old PC=%06X, ", regs.pc); -} -#endif - - // Get the new PC uint32_t newPC = m68k_read_memory_32(vector << 2); -#if 0 -if (startM68KTracing) -{ - printf("new PC=%06X, vector=%u, ", newPC, vector); -} -#endif - - // If vector is uninitialized, call the uninitialized interrupt vector if (newPC == 0) newPC = m68k_read_memory_32(EXCEPTION_UNINITIALIZED_INTERRUPT << 2); - // Generate a stack frame m68ki_stack_frame_3word(regs.pc, sr); m68k_setpc(newPC); -#if 0 -if (startM68KTracing) -{ - printf("(PC=%06X)\n", regs.pc); -} -#endif - // Defer cycle counting until later - regs.interruptCycles += 56; // NOT ACCURATE-- !!! FIX !!! -// CPU_INT_CYCLES += CYC_EXCEPTION[vector]; -#endif + regs.interruptCycles += 56; } - // Initiate exception processing STATIC_INLINE uint32_t m68ki_init_exception(void) { -#if 0 - /* Save the old status register */ - uint sr = m68ki_get_sr(); - - /* Turn off trace flag, clear pending traces */ - FLAG_T1 = FLAG_T0 = 0; - m68ki_clear_trace(); - /* Enter supervisor mode */ - m68ki_set_s_flag(SFLAG_SET); - - return sr; -#else MakeSR(); - uint32_t sr = regs.sr; // Save old status register - regs.s = 1; // Set supervisor mode + uint32_t sr = regs.sr; + regs.s = 1; return sr; -#endif } - // 3 word stack frame (68000 only) STATIC_INLINE void m68ki_stack_frame_3word(uint32_t pc, uint32_t sr) { -#if 0 - m68ki_push_32(pc); - m68ki_push_16(sr); -#else - // Push PC on stack: m68k_areg(regs, 7) -= 4; m68k_write_memory_32(m68k_areg(regs, 7), pc); - // Push SR on stack: m68k_areg(regs, 7) -= 2; m68k_write_memory_16(m68k_areg(regs, 7), sr); -#endif } - -unsigned int m68k_get_reg(void * context, m68k_register_t reg) +unsigned int m68k_get_reg(m68k_register_t reg) { if (reg <= M68K_REG_A7) return regs.regs[reg]; @@ -621,7 +218,6 @@ unsigned int m68k_get_reg(void * context, m68k_register_t reg) return 0; } - void m68k_set_reg(m68k_register_t reg, unsigned int value) { if (reg <= M68K_REG_A7) @@ -637,7 +233,6 @@ void m68k_set_reg(m68k_register_t reg, unsigned int value) regs.regs[15] = value; } - // // Check if the instruction is a valid one // @@ -651,106 +246,54 @@ unsigned int m68k_is_valid_instruction(unsigned int instruction, unsigned int cp return 1; } - -// Dummy functions, for now, until we prove the concept here. :-) - -// Temp, while we're using the Musashi disassembler... -#if 0 -unsigned int m68k_disassemble(char * str_buff, unsigned int pc, unsigned int cpu_type) -{ - return 0; -} -#endif - -int m68k_cycles_run(void) {} /* Number of cycles run so far */ -int m68k_cycles_remaining(void) {} /* Number of cycles left */ -//void m68k_modify_timeslice(int cycles) {} /* Modify cycles left */ -//void m68k_end_timeslice(void) {} /* End timeslice now */ - - void m68k_modify_timeslice(int cycles) { regs.remainingCycles = cycles; } - void m68k_end_timeslice(void) { -#if 0 - m68ki_initial_cycles = GET_CYCLES(); - SET_CYCLES(0); -#else initialCycles = regs.remainingCycles; regs.remainingCycles = 0; -#endif } - unsigned long IllegalOpcode(uint32_t opcode) { -#if 0 - uint32_t pc = m68k_getpc (); -#endif if ((opcode & 0xF000) == 0xF000) { - Exception(0x0B, 0, M68000_EXC_SRC_CPU); // LineF exception... + Exception(0x0B, 0, M68000_EXC_SRC_CPU); return 4; } else if ((opcode & 0xF000) == 0xA000) { - Exception(0x0A, 0, M68000_EXC_SRC_CPU); // LineA exception... + Exception(0x0A, 0, M68000_EXC_SRC_CPU); return 4; } -#if 0 - write_log ("Illegal instruction: %04x at %08lx\n", opcode, (long)pc); -#endif - - Exception(0x04, 0, M68000_EXC_SRC_CPU); // Illegal opcode exception... + Exception(0x04, 0, M68000_EXC_SRC_CPU); return 4; } - void BuildCPUFunctionTable(void) { int i; unsigned long opcode; - // We're only using the "fast" 68000 emulation here, not the "compatible" - // ("fast" doesn't throw exceptions, so we're using "compatible" now :-P) -#if 0 - const struct cputbl * tbl = (currprefs.cpu_compatible - ? op_smalltbl_5_ff : op_smalltbl_4_ff); -#else -//let's try "compatible" and see what happens here... -// const struct cputbl * tbl = op_smalltbl_4_ff; const struct cputbl * tbl = op_smalltbl_5_ff; -#endif -// Log_Printf(LOG_DEBUG, "Building CPU function table (%d %d %d).\n", -// currprefs.cpu_level, currprefs.cpu_compatible, currprefs.address_space_24); - - // Set all instructions to Illegal... for(opcode=0; opcode<65536; opcode++) cpuFunctionTable[opcode] = IllegalOpcode; - // Move functions from compact table into our full function table... for(i=0; tbl[i].handler!=NULL; i++) cpuFunctionTable[tbl[i].opcode] = tbl[i].handler; -//JLH: According to readcpu.c, handler is set to -1 and never changes. -// Actually, it does read this crap in readcpu.c, do_merges() does it... :-P -// Again, seems like a build time thing could be done here... -#if 1 for(opcode=0; opcode<65536; opcode++) { -// if (table68k[opcode].mnemo == i_ILLG || table68k[opcode].clev > currprefs.cpu_level) if (table68k[opcode].mnemo == i_ILLG || table68k[opcode].clev > 0) continue; if (table68k[opcode].handler != -1) { -//printf("Relocate: $%04X->$%04X\n", table68k[opcode].handler, opcode); cpuop_func * f = cpuFunctionTable[table68k[opcode].handler]; if (f == IllegalOpcode) @@ -759,5 +302,4 @@ void BuildCPUFunctionTable(void) cpuFunctionTable[opcode] = f; } } -#endif } diff --git a/waterbox/virtualjaguar/src/m68000/m68kinterface.h b/waterbox/virtualjaguar/src/m68000/m68kinterface.h index 84c87af9f3..1b7bfada59 100644 --- a/waterbox/virtualjaguar/src/m68000/m68kinterface.h +++ b/waterbox/virtualjaguar/src/m68000/m68kinterface.h @@ -69,7 +69,6 @@ typedef enum */ #define M68K_INT_ACK_SPURIOUS 0xFFFFFFFE -void m68k_set_cpu_type(unsigned int); void m68k_pulse_reset(void); int m68k_execute(int num_cycles); void m68k_set_irq(unsigned int int_level); @@ -90,45 +89,24 @@ int irq_ack_handler(int); // Convenience functions -// Uncomment this to have the emulated CPU call a hook function after every instruction -// NB: This must be implemented by the user! -#define M68K_HOOK_FUNCTION -#ifdef M68K_HOOK_FUNCTION void M68KInstructionHook(void); -#endif -// Functions to allow debugging -void M68KDebugHalt(void); -void M68KDebugResume(void); - -/* Peek at the internals of a CPU context. This can either be a context - * retrieved using m68k_get_context() or the currently running context. - * If context is NULL, the currently running CPU context will be used. - */ -unsigned int m68k_get_reg(void * context, m68k_register_t reg); +/* Peek at the internals of the currently running CPU context */ +unsigned int m68k_get_reg(m68k_register_t reg); /* Poke values into the internals of the currently running CPU context */ void m68k_set_reg(m68k_register_t reg, unsigned int value); -// Dummy functions, for now... - /* Check if an instruction is valid for the specified CPU type */ unsigned int m68k_is_valid_instruction(unsigned int instruction, unsigned int cpu_type); -/* Disassemble 1 instruction using the epecified CPU type at pc. Stores - * disassembly in str_buff and returns the size of the instruction in bytes. - */ -unsigned int m68k_disassemble(char * str_buff, unsigned int pc, unsigned int cpu_type); - /* These functions let you read/write/modify the number of cycles left to run * while m68k_execute() is running. * These are useful if the 68k accesses a memory-mapped port on another device * that requires immediate processing by another CPU. */ -int m68k_cycles_run(void); // Number of cycles run so far -int m68k_cycles_remaining(void); // Number of cycles left -void m68k_modify_timeslice(int cycles); // Modify cycles left -void m68k_end_timeslice(void); // End timeslice now +void m68k_modify_timeslice(int cycles); +void m68k_end_timeslice(void); #ifdef __cplusplus } diff --git a/waterbox/virtualjaguar/src/m68000/readcpu.c b/waterbox/virtualjaguar/src/m68000/readcpu.c index 4fcb100926..4fb529dcfb 100644 --- a/waterbox/virtualjaguar/src/m68000/readcpu.c +++ b/waterbox/virtualjaguar/src/m68000/readcpu.c @@ -16,9 +16,6 @@ /* 2008/04/26 [NP] Handle sz_byte for Areg as a valid srcmode if current instruction is a MOVE */ /* (e.g. move.b a1,(a0) ($1089)) (fix Blood Money on Superior 65) */ - -//const char ReadCpu_fileid[] = "Hatari readcpu.c : " __DATE__ " " __TIME__; - #include #include @@ -219,12 +216,6 @@ static void build_insn(int insn) int flaglive = 0, flagdead = 0; id = defs68k[insn]; - /* Note: We treat anything with unknown flags as a jump. That - is overkill, but "the programmer" was lazy quite often, and - *this* programmer can't be bothered to work out what can and - can't trap. Usually, this will be overwritten with the gencomp - based information, anyway. */ - for(j=0; j<5; j++) { switch (id.flaginfo[j].flagset) @@ -304,14 +295,12 @@ out1: 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]; @@ -367,15 +356,12 @@ out1: mnemonic[mnp] = 0; - /* now, we have read the mnemonic and the size */ while (opcstr[pos] && isspace((unsigned)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++]) { @@ -422,7 +408,6 @@ out1: if (CPU_EMU_SIZE < 4) { - /* Used for branch instructions */ srctype = 1; srcgather = 1; srcpos = bitpos[biti]; @@ -434,7 +419,6 @@ out1: if (CPU_EMU_SIZE < 3) { - /* 1..8 for ADDQ/SUBQ and rotshi insns */ srcgather = 1; srctype = 3; srcpos = bitpos[bitj]; @@ -446,7 +430,6 @@ out1: if (CPU_EMU_SIZE < 5) { - /* 0..15 */ srcgather = 1; srctype = 2; srcpos = bitpos[bitJ]; @@ -469,7 +452,6 @@ out1: if (CPU_EMU_SIZE < 5) { - /* 0..15 */ srcgather = 1; srctype = 5; srcpos = bitpos[bitK]; @@ -481,7 +463,6 @@ out1: if (CPU_EMU_SIZE < 5) { - /* 0..3 */ srcgather = 1; srctype = 7; srcpos = bitpos[bitp]; @@ -514,7 +495,6 @@ out1: if (opcstr[pos] == '!') { - /* exclusion */ do { pos++; @@ -532,7 +512,6 @@ out1: { if (opcstr[pos + 4] == '-') { - /* replacement */ if (mode_from_str(opcstr + pos) == srcmode) srcmode = mode_from_str(opcstr + pos + 5); else @@ -542,7 +521,6 @@ out1: } else { - /* normal */ while(mode_from_str(opcstr + pos) != srcmode) { pos += 4; @@ -562,7 +540,6 @@ out1: } } - /* Some addressing modes are invalid as destination */ if (srcmode == imm || srcmode == PC16 || srcmode == PC8r) goto nomatch; @@ -589,7 +566,6 @@ out1: if (opcstr[pos] == '!') { - /* exclusion */ do { pos++; @@ -607,7 +583,6 @@ out1: { if (opcstr[pos + 4] == '-') { - /* replacement */ if (mode_from_str(opcstr + pos) == srcmode) srcmode = mode_from_str(opcstr + pos + 5); else @@ -617,7 +592,6 @@ out1: } else { - /* normal */ while(mode_from_str(opcstr+pos) != srcmode) { pos += 4; @@ -639,7 +613,6 @@ out1: default: abort(); } - /* safety check - might have changed */ if (srcmode != Areg && srcmode != Dreg && srcmode != Aind && srcmode != Ad16 && srcmode != Ad8r && srcmode != Aipi && srcmode != Apdi && srcmode != immi) @@ -647,8 +620,7 @@ out1: srcgather = 0; } -// if (srcmode == Areg && sz == sz_byte) - if (srcmode == Areg && sz == sz_byte && strcmp(mnemonic, "MOVE") != 0 ) // [NP] move.b is valid on 68000 + if (srcmode == Areg && sz == sz_byte && strcmp(mnemonic, "MOVE") != 0 ) goto nomatch; if (opcstr[pos] != ',') @@ -656,7 +628,6 @@ out1: pos++; - /* parse the destination address */ usedst = 1; switch (opcstr[pos++]) @@ -736,7 +707,6 @@ out1: if (opcstr[pos] == '!') { - /* exclusion */ do { pos++; @@ -754,7 +724,6 @@ out1: { if (opcstr[pos+4] == '-') { - /* replacement */ if (mode_from_str(opcstr + pos) == destmode) destmode = mode_from_str(opcstr + pos + 5); else @@ -764,7 +733,6 @@ out1: } else { - /* normal */ while(mode_from_str(opcstr + pos) != destmode) { pos += 4; @@ -784,7 +752,6 @@ out1: } } - /* Some addressing modes are invalid as destination */ if (destmode == imm || destmode == PC16 || destmode == PC8r) goto nomatch; @@ -810,7 +777,6 @@ out1: if (opcstr[pos] == '!') { - /* exclusion */ do { pos++; @@ -828,7 +794,6 @@ out1: { if (opcstr[pos+4] == '-') { - /* replacement */ if (mode_from_str(opcstr + pos) == destmode) destmode = mode_from_str(opcstr + pos + 5); else @@ -838,7 +803,6 @@ out1: } else { - /* normal */ while (mode_from_str(opcstr + pos) != destmode) { pos += 4; @@ -860,7 +824,6 @@ out1: default: abort(); } - /* safety check - might have changed */ if (destmode != Areg && destmode != Dreg && destmode != Aind && destmode != Ad16 && destmode != Ad8r && destmode != Aipi && destmode != Apdi) @@ -870,13 +833,7 @@ out1: 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); @@ -921,22 +878,15 @@ endofline: 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; table68k[opc].isjmp = isjmp; nomatch: - /* FOO! */; + ; } } - void read_table68k(void) { int i; @@ -952,21 +902,15 @@ void read_table68k(void) build_insn(i); } - static int mismatch; - -static void handle_merges (long int opcode) +static void handle_merges(long int opcode) { uint16_t smsk; uint16_t dmsk; int sbitdst, dstend; int srcreg, dstreg; -//0011 DDDd ddss sSSS:00:-NZ00:-----:12: MOVE.W s,d[!Areg] -//31C3 -> -//0011 0001 1100 0011 : DDD = 0, ddd = 7, sss = 0, SSS = 3 - if (table68k[opcode].spos == -1) { sbitdst = 1; @@ -1019,9 +963,6 @@ static void handle_merges (long int 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 @@ -1051,52 +992,11 @@ static void handle_merges (long int opcode) if (code != opcode) { table68k[code].handler = opcode; - -#if 0 -if (opcode == 0x31C3 || code == 0x31C3) -{ - printf("Relocate... ($%04X->$%04X)\n", (uint16_t)opcode, code); - printf(" handler: %08X\n", table68k[code].handler); - printf(" dreg: %i\n", table68k[code].dreg); - printf(" sreg: %i\n", table68k[code].sreg); - printf(" dpos: %i\n", table68k[code].dpos); - printf(" spos: %i\n", table68k[code].spos); - printf(" sduse: %i\n", table68k[code].sduse); - printf("flagdead: %i\n", table68k[code].flagdead); - printf("flaglive: %i\n", table68k[code].flaglive); -} -#endif -/* - 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 isjmp:1; - unsigned int unused2:4; -*/ } } } } - -// What this really does is expand the # of handlers, which is why the -// opcode has to be passed into the opcode handler... -// E.g., $F620 maps into $F621-F627 as well; this code does this expansion. void do_merges(void) { long int opcode; @@ -1115,9 +1015,7 @@ void do_merges(void) nr_cpuop_funcs = nr; } - int get_no_mismatches(void) { return mismatch; } - diff --git a/waterbox/virtualjaguar/src/m68000/readcpu.h b/waterbox/virtualjaguar/src/m68000/readcpu.h index 5fe0d495b6..ff4b37d0df 100644 --- a/waterbox/virtualjaguar/src/m68000/readcpu.h +++ b/waterbox/virtualjaguar/src/m68000/readcpu.h @@ -11,7 +11,6 @@ #include "sysdeps.h" - ENUMDECL { Dreg, Areg, Aind, Aipi, Apdi, Ad16, Ad8r, absw, absl, PC16, PC8r, imm, imm0, imm1, imm2, immi, am_unknown, am_illg @@ -44,7 +43,7 @@ ENUMDECL { i_CINVL, i_CINVP, i_CINVA, i_CPUSHL, i_CPUSHP, i_CPUSHA, i_MOVE16, i_MMUOP, - MAX_OPCODE_FAMILY /* should always be last of the list */ + MAX_OPCODE_FAMILY } ENUMNAME (instrmnem); extern const struct mnemolookup { diff --git a/waterbox/virtualjaguar/src/m68000/sysdeps.h b/waterbox/virtualjaguar/src/m68000/sysdeps.h index d927b8dbaa..b99beaa9a1 100644 --- a/waterbox/virtualjaguar/src/m68000/sysdeps.h +++ b/waterbox/virtualjaguar/src/m68000/sysdeps.h @@ -27,67 +27,11 @@ #include #include -#ifndef __STDC__ -#error "Your compiler is not ANSI. Get a real one." -#endif - #include #include - -#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(WARPUP) -#include "devices/timer.h" -#include "osdep/posixemu.h" -#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|O_TRUNC,777) -extern void * q_memset(void *, int, size_t); -extern void * q_memcpy(void *, const void *, size_t); -#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 - -/* 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 /* When using GNU C, make abort more useful. */ #ifdef __GNUC__ @@ -98,11 +42,6 @@ extern void * q_memcpy(void *, const void *, size_t); } while (0) #endif - -#ifndef O_BINARY -#define O_BINARY 0 -#endif - #ifndef STATIC_INLINE #define STATIC_INLINE static __inline__ #endif diff --git a/waterbox/virtualjaguar/src/m68000/table68k b/waterbox/virtualjaguar/src/m68000/table68k deleted file mode 100644 index 9605d6e3e2..0000000000 --- a/waterbox/virtualjaguar/src/m68000/table68k +++ /dev/null @@ -1,260 +0,0 @@ -% 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 -% p: immediate 0..3 (CINV and CPUSH: cache field) -% 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)+ -% L: (xxx.L) -% -% Fields on a line: -% 16 chars bitpattern : -% CPU level / privilege 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:X-Z--: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:20:-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:20:?????:?????: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 01dd dDDD:00:-----:-----:13: ADDA.W #j,d[Areg] -0101 jjj0 10dd dDDD:00:-----:-----:13: ADDA.L #j,d[Areg] -0101 jjj0 zzdd dDDD:00:XNZVC:-----:13: ADD.z #j,d[!Areg] -0101 jjj1 01dd dDDD:00:-----:-----:13: SUBA.W #j,d[Areg] -0101 jjj1 10dd dDDD:00:-----:-----:13: SUBA.L #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 0101 iiii iSSS:40:?????:?????:11: MMUOP #i,s - -% 68040 instructions -1111 0100 pp00 1rrr:42:-----:-----:02: CINVL #p,Ar -1111 0100 pp01 0rrr:42:-----:-----:02: CINVP #p,Ar -1111 0100 pp01 1rrr:42:-----:-----:00: CINVA #p -1111 0100 pp10 1rrr:42:-----:-----:02: CPUSHL #p,Ar -1111 0100 pp11 0rrr:42:-----:-----:02: CPUSHP #p,Ar -1111 0100 pp11 1rrr:42:-----:-----:00: CPUSHA #p -% destination register number is encoded in the following word -1111 0110 0010 0rrr:40:-----:-----:12: MOVE16 ArP,AxP -1111 0110 00ss sSSS:40:-----:-----:12: MOVE16 s[Dreg-Aipi],L -1111 0110 00dd dDDD:40:-----:-----:12: MOVE16 L,d[Areg-Aipi] -1111 0110 00ss sSSS:40:-----:-----:12: MOVE16 s[Aind],L -1111 0110 00dd dDDD:40:-----:-----:12: MOVE16 L,d[Aipi-Aind]