diff --git a/src/PSP2/audio_psp.cpp b/src/PSP2/audio_psp.cpp new file mode 100644 index 0000000..a29d7ca --- /dev/null +++ b/src/PSP2/audio_psp.cpp @@ -0,0 +1,326 @@ +/* + * audio_psp.cpp - Audio support, PSP implementation + * + * Basilisk II (C) 1997-2005 Christian Bauer + * Portions written by Marc Hellwig + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include + +#define ntohs __builtin_bswap16 + +#include "sysdeps.h" + +#include "cpu_emulation.h" +#include "main.h" +#include "prefs.h" +#include "user_strings.h" +#include "audio.h" +#include "audio_defs.h" + +#define DEBUG 0 +#include "debug.h" + + +// Global variables +static SceUID audio_irq_done_sem; // Signal from interrupt to streaming thread: data block read +static SceUID bufferEmpty; + +static int sound_channel = 0; +static volatile int sound_volume = 0; +static volatile uint32 sound_status = 0; + +static volatile int pcmflip = 0; +static int16 __attribute__((aligned(16))) pcmout1[4096 * 2]; // 4096 stereo samples +static int16 __attribute__((aligned(16))) pcmout2[4096 * 2]; + +static int audio_block_size; + + +/* + * Audio Threads + * + */ + +int fillBuffer(SceSize args, void *argp) +{ + int16 *fillbuf; + + while(sound_status != 0xDEADBEEF) + { + sceKernelWaitSema(bufferEmpty, 1, 0); + fillbuf = pcmflip ? pcmout2 : pcmout1; + if (AudioStatus.num_sources) + { + // Trigger audio interrupt to get new buffer + D(bug("stream: triggering irq\n")); + SetInterruptFlag(INTFLAG_AUDIO); + TriggerInterrupt(); + D(bug("stream: waiting for ack\n")); + sceKernelWaitSema(audio_irq_done_sem, 1, 0); + //sem_wait(&audio_irq_done_sem); + D(bug("stream: ack received\n")); + + // Get size of audio data + uint32 apple_stream_info = ReadMacInt32(audio_data + adatStreamInfo); + if (apple_stream_info) + { + int work_size = ReadMacInt32(apple_stream_info + scd_sampleCount) * (AudioStatus.sample_size >> 3) * AudioStatus.channels; + D(bug("stream: work_size %d\n", work_size)); + if (work_size > audio_block_size) + work_size = audio_block_size; // safety check - should never mix more than audio_frames_per_block + int16 *p = (int16 *)Mac2HostAddr(ReadMacInt32(apple_stream_info + scd_buffer)); + for (int i=0; i> 3) * AudioStatus.channels * audio_frames_per_block; + D(bug("AudioInit: block size %d\n", block_size)); + + sound_channel = sceAudioOutOpenPort(SCE_AUDIO_OUT_PORT_TYPE_MAIN, audio_frames_per_block, 48000, SCE_AUDIO_OUT_MODE_STEREO); + + int volume[2] = {SCE_AUDIO_VOLUME_0DB,SCE_AUDIO_VOLUME_0DB}; + sceAudioOutSetVolume(sound_channel, SCE_AUDIO_VOLUME_FLAG_L_CH |SCE_AUDIO_VOLUME_FLAG_R_CH, (int*)&volume); + + sound_status = 0; + + int audioThid = sceKernelCreateThread("audioOutput", audioOutput, 0x10000100, 0x1800, 0, 0, NULL); + if(audioThid < 0) + { + printf("FATAL: Cannot create audioOutput thread\n"); + return; // no audio + } + + sceKernelStartThread(audioThid, 0, 0); + + // Start streaming thread + int bufferThid = sceKernelCreateThread("bufferFilling", fillBuffer, 0x10000100, 0x1800, 0, 0, NULL); + if(bufferThid < 0) + { + sound_status = 0xDEADBEEF; // kill the audioOutput thread + sceKernelDelayThread(100*1000); + sceAudioOutReleasePort(sound_channel); + sound_channel = -1; + printf("FATAL: Cannot create bufferFilling thread\n"); + return; + } + sceKernelStartThread(bufferThid, 0, 0); + + // Everything OK + audio_open = true; +} + + +/* + * Deinitialization + */ + +void AudioExit(void) +{ + if (audio_open) + { + sound_status = 0xDEADBEEF; + sceKernelSignalSema(bufferEmpty, 1); // fillbuffer thread is probably waiting. + sceKernelDelayThread(100*1000); + sceAudioOutReleasePort(sound_channel); + sound_channel = -1; + } + + sceKernelDeleteSema(bufferEmpty); + sceKernelDeleteSema(audio_irq_done_sem); +} + + +/* + * First source added, start audio stream + */ + +void audio_enter_stream() +{ + // Streaming thread is always running to avoid clicking noises +} + + +/* + * Last source removed, stop audio stream + */ + +void audio_exit_stream() +{ + // Streaming thread is always running to avoid clicking noises +} + +/* + * MacOS audio interrupt, read next data block + */ + +void AudioInterrupt(void) +{ + D(bug("AudioInterrupt\n")); + + // Get data from apple mixer + if (AudioStatus.mixer) + { + M68kRegisters r; + r.a[0] = audio_data + adatStreamInfo; + r.a[1] = AudioStatus.mixer; + Execute68k(audio_data + adatGetSourceData, &r); + D(bug(" GetSourceData() returns %08lx\n", r.d[0])); + } + else + WriteMacInt32(audio_data + adatStreamInfo, 0); + + // Signal stream function + sceKernelSignalSema(audio_irq_done_sem, 1); + D(bug("AudioInterrupt done\n")); +} + + +/* + * Set sampling parameters + * "index" is an index into the audio_sample_rates[] etc. arrays + * It is guaranteed that AudioStatus.num_sources == 0 + */ + +bool audio_set_sample_rate(int index) +{ + return true; +} + +bool audio_set_sample_size(int index) +{ + return true; +} + +bool audio_set_channels(int index) +{ + return true; +} + + +/* + * Get/set audio info + */ + +bool audio_get_main_mute(void) +{ + return false; +} + +uint32 audio_get_main_volume(void) +{ + /*if (audio_open) { + uint32 v = (sound_volume << 8) / PSP_AUDIO_VOLUME_MAX; + return (v << 16) | v; + } else*/ + return 0x01000100; +} + +bool audio_get_speaker_mute(void) +{ + return false; +} + +uint32 audio_get_speaker_volume(void) +{ + return 0x01000100; +} + +void audio_set_main_mute(bool mute) +{ +} + +void audio_set_main_volume(uint32 vol) +{ + /*if (audio_open) + sound_volume = (((vol >> 16) + (vol & 0xffff)) * PSP_AUDIO_VOLUME_MAX) >> 9; + */ +} + +void audio_set_speaker_mute(bool mute) +{ +} + +void audio_set_speaker_volume(uint32 vol) +{ +} diff --git a/src/PSP2/clip_psp.cpp b/src/PSP2/clip_psp.cpp new file mode 100644 index 0000000..971b48c --- /dev/null +++ b/src/PSP2/clip_psp.cpp @@ -0,0 +1,74 @@ +/* + * clip_psp.cpp - Clipboard handling, PSP implementation + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "sysdeps.h" + +#include "clip.h" +#include "prefs.h" +#include "macos_util.h" + +#define DEBUG 0 +#include "debug.h" + + +/* + * Initialization + */ + +void ClipInit(void) +{ +} + + +/* + * Deinitialization + */ + +void ClipExit(void) +{ +} + + +/* + * Mac application reads clipboard + */ + +void GetScrap(void **handle, uint32 type, int32 offset) +{ + D(bug("GetScrap handle %p, type %08x, offset %d\n", handle, type, offset)); +} + + +/* + * Mac application wrote to clipboard + */ + +void PutScrap(uint32 type, void *scrap, int32 length) +{ + D(bug("PutScrap type %08lx, data %08lx, length %ld\n", type, scrap, length)); + if (length <= 0) + return; + + switch (type) { + case FOURCC('T','E','X','T'): + D(bug(" clipping TEXT\n")); + break; + } +} diff --git a/src/PSP2/cpudefs.cpp b/src/PSP2/cpudefs.cpp new file mode 100644 index 0000000..e3cfa98 --- /dev/null +++ b/src/PSP2/cpudefs.cpp @@ -0,0 +1,185 @@ +#include "sysdeps.h" +#include "readcpu.h" +struct instr_def defs68k[] = { +{ 60, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, 0, 16, "ORSR.B #1"}, +{ 124, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, 4, 16, "ORSR.W #1"}, +{ 192, 8, {17,17,11,11,11,12,12,12,0,0,0,0,0,0,0,0}, 63936, 2, 0, { { 1, 1 }, { 1, 5 }, { 1, 0 }, { 1, 5 }, { 1, 0 } }, 4, 17, "CHK2.z #1,s[!Dreg,Areg,Aipi,Apdi,Immd]"}, +{ 0, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "OR.z #z,d[!Areg]"}, +{ 572, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, 0, 16, "ANDSR.B #1"}, +{ 636, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, 4, 16, "ANDSR.W #1"}, +{ 512, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "AND.z #z,d[!Areg]"}, +{ 1024, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "SUB.z #z,d[!Areg]"}, +{ 1536, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "ADD.z #z,d[!Areg]"}, +{ 1728, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 } }, 0, 16, "CALLM s[!Dreg,Areg,Aipi,Apdi,Immd]"}, +{ 1728, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 3, 16, "RTM s[Dreg,Areg]"}, +{ 2048, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 0, 17, "BTST #1,s[!Areg]"}, +{ 2112, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 0, 19, "BCHG #1,s[!Areg,Immd]"}, +{ 2176, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 0, 19, "BCLR #1,s[!Areg,Immd]"}, +{ 2240, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 0, 19, "BSET #1,s[!Areg,Immd]"}, +{ 2620, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, 0, 16, "EORSR.B #1"}, +{ 2684, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, 4, 16, "EORSR.W #1"}, +{ 2560, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "EOR.z #z,d[!Areg]"}, +{ 3072, 8, {17,17,11,11,11,12,12,12,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 17, "CMP.z #z,s[!Areg,Immd]"}, +{ 2752, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "CAS.B #1,s[!Dreg,Areg,Immd,PC8r,PC16]"}, +{ 3264, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "CAS.W #1,s[!Dreg,Areg,Immd,PC8r,PC16]"}, +{ 3324, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 16, "CAS2.W #2"}, +{ 3584, 8, {17,17,11,11,11,12,12,12,0,0,0,0,0,0,0,0}, 65280, 2, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 19, "MOVES.z #1,s[!Dreg,Areg,Immd,PC8r,PC16]"}, +{ 3776, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "CAS.L #1,s[!Dreg,Areg,Immd,PC8r,PC16]"}, +{ 3836, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 16, "CAS2.L #2"}, +{ 256, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "MVPMR.W d[Areg-Ad16],Dr"}, +{ 320, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "MVPMR.L d[Areg-Ad16],Dr"}, +{ 384, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "MVPRM.W Dr,d[Areg-Ad16]"}, +{ 448, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "MVPRM.L Dr,d[Areg-Ad16]"}, +{ 256, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 0, 17, "BTST Dr,s[!Areg]"}, +{ 320, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 0, 19, "BCHG Dr,s[!Areg,Immd]"}, +{ 384, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 0, 19, "BCLR Dr,s[!Areg,Immd]"}, +{ 448, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 0, 19, "BSET Dr,s[!Areg,Immd]"}, +{ 4096, 12, {14,14,14,13,13,13,11,11,11,12,12,12,0,0,0,0}, 61440, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 18, "MOVE.B s,d[!Areg]"}, +{ 8192, 12, {14,14,14,13,13,13,11,11,11,12,12,12,0,0,0,0}, 61440, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "MOVEA.L s,d[Areg]"}, +{ 8192, 12, {14,14,14,13,13,13,11,11,11,12,12,12,0,0,0,0}, 61440, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 18, "MOVE.L s,d[!Areg]"}, +{ 12288, 12, {14,14,14,13,13,13,11,11,11,12,12,12,0,0,0,0}, 61440, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "MOVEA.W s,d[Areg]"}, +{ 12288, 12, {14,14,14,13,13,13,11,11,11,12,12,12,0,0,0,0}, 61440, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 18, "MOVE.W s,d[!Areg]"}, +{ 16384, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 0, 0 }, { 1, 4 }, { 0, 0 }, { 1, 4 }, { 1, 0 } }, 0, 48, "NEGX.z d[!Areg]"}, +{ 16576, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 1, { { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 } }, 4, 16, "MVSR2.W d[!Areg]"}, +{ 16896, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 2 }, { 1, 3 }, { 1, 2 }, { 1, 2 } }, 0, 32, "CLR.z d[!Areg]"}, +{ 17088, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 1, 0, { { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 } }, 0, 16, "MVSR2.B d[!Areg]"}, +{ 17408, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 48, "NEG.z d[!Areg]"}, +{ 17600, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 16, "MV2SR.B s[!Areg]"}, +{ 17920, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 48, "NOT.z d[!Areg]"}, +{ 18112, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 2, { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, 4, 16, "MV2SR.W s[!Areg]"}, +{ 18440, 3, {15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 2, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 49, "LINK.L Ar,#2"}, +{ 18432, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 0, 0 }, { 1, 5 }, { 0, 0 }, { 1, 5 }, { 1, 0 } }, 0, 48, "NBCD.B d[!Areg]"}, +{ 18504, 3, {9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 2, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 16, "BKPT #k"}, +{ 18496, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 48, "SWAP.W s[Dreg]"}, +{ 18496, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 0, "PEA.L s[!Dreg,Areg,Aipi,Apdi,Immd]"}, +{ 18560, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 48, "EXT.W d[Dreg]"}, +{ 18560, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 2, "MVMLE.W #1,d[!Dreg,Areg,Aipi]"}, +{ 18624, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 48, "EXT.L d[Dreg]"}, +{ 18624, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 2, "MVMLE.L #1,d[!Dreg,Areg,Aipi]"}, +{ 18880, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 48, "EXT.B d[Dreg]"}, +{ 18944, 8, {17,17,11,11,11,12,12,12,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 16, "TST.z s"}, +{ 19136, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 48, "TAS.B d[!Areg]"}, +{ 19196, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 0, "ILLEGAL"}, +{ 19456, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "MULL.L #1,s[!Areg]"}, +{ 19520, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 } }, 4, 19, "DIVL.L #1,s[!Areg]"}, +{ 19584, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 1, "MVMEL.W #1,s[!Dreg,Areg,Apdi,Immd]"}, +{ 19648, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 1, "MVMEL.L #1,s[!Dreg,Areg,Apdi,Immd]"}, +{ 20032, 4, {8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0}, 65520, 0, 0, { { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 } }, 0, 16, "TRAP #J"}, +{ 20048, 3, {15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 49, "LINK.W Ar,#1"}, +{ 20056, 3, {15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 48, "UNLK.L Ar"}, +{ 20064, 3, {15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 0, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 16, "MVR2USP.L Ar"}, +{ 20072, 3, {15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 0, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 32, "MVUSP2R.L Ar"}, +{ 20080, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 0, "RESET"}, +{ 20081, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 0, "NOP"}, +{ 20082, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 4, 16, "STOP #1"}, +{ 20083, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 7, 0, "RTE"}, +{ 20084, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 3, 16, "RTD #1"}, +{ 20085, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 3, 0, "RTS"}, +{ 20086, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 } }, 4, 0, "TRAPV"}, +{ 20087, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 3, 0, "RTR"}, +{ 20090, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 1, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 16, "MOVEC2 #1"}, +{ 20091, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 1, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 16, "MOVE2C #1"}, +{ 20096, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 2, 128, "JSR.L s[!Dreg,Areg,Aipi,Apdi,Immd]"}, +{ 16640, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 5 }, { 1, 5 }, { 1, 5 } }, 4, 17, "CHK.L s[!Areg],Dr"}, +{ 16768, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 5 }, { 1, 5 }, { 1, 5 } }, 4, 17, "CHK.W s[!Areg],Dr"}, +{ 20160, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 2, 128, "JMP.L s[!Dreg,Areg,Aipi,Apdi,Immd]"}, +{ 16832, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 2, "LEA.L s[!Dreg,Areg,Aipi,Apdi,Immd],Ar"}, +{ 20544, 9, {7,7,7,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 19, "ADDA.W #j,d[Areg]"}, +{ 20608, 9, {7,7,7,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 19, "ADDA.L #j,d[Areg]"}, +{ 20480, 11, {7,7,7,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "ADD.z #j,d[!Areg]"}, +{ 20800, 9, {7,7,7,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 19, "SUBA.W #j,d[Areg]"}, +{ 20864, 9, {7,7,7,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 19, "SUBA.L #j,d[Areg]"}, +{ 20736, 11, {7,7,7,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "SUB.z #j,d[!Areg]"}, +{ 20680, 7, {2,2,2,2,15,15,15,0,0,0,0,0,0,0,0,0}, 61688, 0, 0, { { 1, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 } }, 1, 49, "DBcc.W Dr,#1"}, +{ 20672, 10, {2,2,2,2,13,13,13,14,14,14,0,0,0,0,0,0}, 61632, 0, 0, { { 1, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 } }, 0, 32, "Scc.B d[!Areg]"}, +{ 20730, 4, {2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0}, 61695, 2, 0, { { 1, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 } }, 4, 16, "TRAPcc #1"}, +{ 20731, 4, {2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0}, 61695, 2, 0, { { 1, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 } }, 4, 16, "TRAPcc #2"}, +{ 20732, 4, {2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0}, 61695, 2, 0, { { 1, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 } }, 4, 0, "TRAPcc"}, +{ 24832, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 1, 64, "BSR.W #1"}, +{ 24832, 8, {6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 1, 64, "BSR.B #i"}, +{ 25087, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 1, 64, "BSR.L #2"}, +{ 24576, 4, {3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0}, 61695, 0, 0, { { 1, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 } }, 1, 64, "Bcc.W #1"}, +{ 24576, 12, {3,3,3,3,6,6,6,6,6,6,6,6,0,0,0,0}, 61440, 0, 0, { { 1, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 } }, 1, 64, "Bcc.B #i"}, +{ 24831, 4, {3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0}, 61695, 0, 0, { { 1, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 }, { 3, 1 } }, 1, 64, "Bcc.L #2"}, +{ 28672, 11, {15,15,15,5,5,5,5,5,5,5,5,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 18, "MOVE.L #i,Dr"}, +{ 32768, 11, {15,15,15,17,17,11,11,11,12,12,12,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "OR.z s[!Areg],Dr"}, +{ 32960, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 } }, 4, 19, "DIVU.W s[!Areg],Dr"}, +{ 33024, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 0, 0 }, { 1, 4 }, { 0, 0 }, { 1, 4 }, { 1, 0 } }, 0, 19, "SBCD.B d[Dreg],Dr"}, +{ 33024, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 0, 0 }, { 1, 4 }, { 0, 0 }, { 1, 4 }, { 1, 0 } }, 0, 19, "SBCD.B d[Areg-Apdi],Arp"}, +{ 33024, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "OR.z Dr,d[!Areg,Dreg]"}, +{ 33088, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 2, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "PACK d[Dreg],Dr"}, +{ 33088, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 2, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "PACK d[Areg-Apdi],Arp"}, +{ 33152, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 2, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "UNPK d[Dreg],Dr"}, +{ 33152, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 2, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "UNPK d[Areg-Apdi],Arp"}, +{ 33216, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 } }, 4, 19, "DIVS.W s[!Areg],Dr"}, +{ 36864, 11, {15,15,15,17,17,11,11,11,12,12,12,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "SUB.z s,Dr"}, +{ 37056, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 19, "SUBA.W s,Ar"}, +{ 37120, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 0, 0 }, { 1, 0 }, { 0, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "SUBX.z d[Dreg],Dr"}, +{ 37120, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 0, 0 }, { 1, 0 }, { 0, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "SUBX.z d[Areg-Apdi],Arp"}, +{ 37120, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "SUB.z Dr,d[!Areg,Dreg]"}, +{ 37312, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 19, "SUBA.L s,Ar"}, +{ 45056, 11, {15,15,15,17,17,11,11,11,12,12,12,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 17, "CMP.z s,Dr"}, +{ 45248, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 17, "CMPA.W s,Ar"}, +{ 45504, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 17, "CMPA.L s,Ar"}, +{ 45312, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 17, "CMPM.z d[Areg-Aipi],ArP"}, +{ 45312, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "EOR.z Dr,d[!Areg]"}, +{ 49152, 11, {15,15,15,17,17,11,11,11,12,12,12,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "AND.z s[!Areg],Dr"}, +{ 49344, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "MULU.W s[!Areg],Dr"}, +{ 49408, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 0, 0 }, { 1, 4 }, { 0, 0 }, { 1, 4 }, { 1, 0 } }, 0, 19, "ABCD.B d[Dreg],Dr"}, +{ 49408, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 0, 0 }, { 1, 4 }, { 0, 0 }, { 1, 4 }, { 1, 0 } }, 0, 19, "ABCD.B d[Areg-Apdi],Arp"}, +{ 49408, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "AND.z Dr,d[!Areg,Dreg]"}, +{ 49472, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 51, "EXG.L Dr,d[Dreg]"}, +{ 49472, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 51, "EXG.L Ar,d[Areg]"}, +{ 49536, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 51, "EXG.L Dr,d[Areg]"}, +{ 49600, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "MULS.W s[!Areg],Dr"}, +{ 53248, 11, {15,15,15,17,17,11,11,11,12,12,12,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "ADD.z s,Dr"}, +{ 53440, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 19, "ADDA.W s,Ar"}, +{ 53504, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 0, 0 }, { 1, 0 }, { 0, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "ADDX.z d[Dreg],Dr"}, +{ 53504, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 0, 0 }, { 1, 0 }, { 0, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "ADDX.z d[Areg-Apdi],Arp"}, +{ 53504, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "ADD.z Dr,d[!Areg,Dreg]"}, +{ 53696, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 19, "ADDA.L s,Ar"}, +{ 57344, 9, {7,7,7,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "ASf.z #j,DR"}, +{ 57352, 9, {7,7,7,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 0, 19, "LSf.z #j,DR"}, +{ 57360, 9, {7,7,7,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 0, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 0, 19, "ROXf.z #j,DR"}, +{ 57368, 9, {7,7,7,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 0, 19, "ROf.z #j,DR"}, +{ 57376, 9, {15,15,15,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "ASf.z Dr,DR"}, +{ 57384, 9, {15,15,15,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 0, 19, "LSf.z Dr,DR"}, +{ 57392, 9, {15,15,15,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 0, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 0, 19, "ROXf.z Dr,DR"}, +{ 57400, 9, {15,15,15,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 0, 19, "ROf.z Dr,DR"}, +{ 57536, 7, {4,13,13,13,14,14,14,0,0,0,0,0,0,0,0,0}, 65216, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, 19, "ASfW.W d[!Dreg,Areg]"}, +{ 58048, 7, {4,13,13,13,14,14,14,0,0,0,0,0,0,0,0,0}, 65216, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 0, 19, "LSfW.W d[!Dreg,Areg]"}, +{ 58560, 7, {4,13,13,13,14,14,14,0,0,0,0,0,0,0,0,0}, 65216, 0, 0, { { 0, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 0, 19, "ROXfW.W d[!Dreg,Areg]"}, +{ 59072, 7, {4,13,13,13,14,14,14,0,0,0,0,0,0,0,0,0}, 65216, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 0, 19, "ROfW.W d[!Dreg,Areg]"}, +{ 59584, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 17, "BFTST #1,s[!Areg,Apdi,Aipi,Immd]"}, +{ 59840, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 17, "BFEXTU #1,s[!Areg,Apdi,Aipi,Immd]"}, +{ 60096, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "BFCHG #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]"}, +{ 60352, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 17, "BFEXTS #1,s[!Areg,Apdi,Aipi,Immd]"}, +{ 60608, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "BFCLR #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]"}, +{ 60864, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 17, "BFFFO #1,s[!Areg,Apdi,Aipi,Immd]"}, +{ 61120, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "BFSET #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]"}, +{ 61376, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 0, 19, "BFINS #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]"}, +{ 61952, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 17, "FPP #1,s"}, +{ 62016, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 1, 17, "FDBcc #1,s[Areg-Dreg]"}, +{ 62016, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 17, "FScc #1,s[!Areg,Immd,PC8r,PC16]"}, +{ 62074, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 3, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 16, "FTRAPcc #1"}, +{ 62075, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 3, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 16, "FTRAPcc #2"}, +{ 62076, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 3, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 0, "FTRAPcc"}, +{ 62080, 6, {10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 1, 17, "FBcc #K,#1"}, +{ 62144, 6, {10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 1, 17, "FBcc #K,#2"}, +{ 62208, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 32, "FSAVE s[!Dreg,Areg,Aipi,Immd,PC8r,PC16]"}, +{ 62272, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 16, "FRESTORE s[!Dreg,Areg,Apdi,Immd]"}, +{ 62720, 8, {5,5,5,5,5,12,12,12,0,0,0,0,0,0,0,0}, 65280, 4, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 17, "MMUOP #i,s"}, +{ 62472, 5, {19,19,15,15,15,0,0,0,0,0,0,0,0,0,0,0}, 65336, 4, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 2, "CINVL #p,Ar"}, +{ 62480, 5, {19,19,15,15,15,0,0,0,0,0,0,0,0,0,0,0}, 65336, 4, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 2, "CINVP #p,Ar"}, +{ 62488, 5, {19,19,15,15,15,0,0,0,0,0,0,0,0,0,0,0}, 65336, 4, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 0, "CINVA #p"}, +{ 62504, 5, {19,19,15,15,15,0,0,0,0,0,0,0,0,0,0,0}, 65336, 4, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 2, "CPUSHL #p,Ar"}, +{ 62512, 5, {19,19,15,15,15,0,0,0,0,0,0,0,0,0,0,0}, 65336, 4, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 2, "CPUSHP #p,Ar"}, +{ 62520, 5, {19,19,15,15,15,0,0,0,0,0,0,0,0,0,0,0}, 65336, 4, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 4, 0, "CPUSHA #p"}, +{ 63008, 3, {15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 4, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "MOVE16 ArP,AxP"}, +{ 62976, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 4, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "MOVE16 s[Dreg-Aipi],L"}, +{ 62976, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 4, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "MOVE16 L,d[Areg-Aipi]"}, +{ 62976, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 4, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "MOVE16 s[Aind],L"}, +{ 62976, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 4, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, 18, "MOVE16 L,d[Aipi-Aind]"}, +{ 28928, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 3, 0, "EMULOP_RETURN"}, +{ 28928, 8, {18,18,18,18,18,18,18,18,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 2, 16, "EMULOP #E"}}; +int n_defs68k = 181; diff --git a/src/PSP2/cpuemu.cpp b/src/PSP2/cpuemu.cpp new file mode 100644 index 0000000..317141d --- /dev/null +++ b/src/PSP2/cpuemu.cpp @@ -0,0 +1,45276 @@ +#include "sysdeps.h" +#include "m68k.h" +#include "memory.h" +#include "readcpu.h" +#include "newcpu.h" +#include "compiler/compemu.h" +#include "fpu/fpu.h" +#include "cputbl.h" +#define SET_CFLG_ALWAYS(x) SET_CFLG(x) +#define SET_NFLG_ALWAYS(x) SET_NFLG(x) +#define CPUFUNC_FF(x) x##_ff +#define CPUFUNC_NF(x) x##_nf +#define CPUFUNC(x) CPUFUNC_FF(x) +#ifdef NOFLAGS +# include "noflags.h" +#endif + +#if !defined(PART_1) && !defined(PART_2) && !defined(PART_3) && !defined(PART_4) && !defined(PART_5) && !defined(PART_6) && !defined(PART_7) && !defined(PART_8) +#define PART_1 1 +#define PART_2 1 +#define PART_3 1 +#define PART_4 1 +#define PART_5 1 +#define PART_6 1 +#define PART_7 1 +#define PART_8 1 +#endif + +#ifdef PART_1 +void REGPARAM2 CPUFUNC(op_0_0)(uae_u32 opcode) /* OR.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10_0)(uae_u32 opcode) /* OR.B #.B,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_18_0)(uae_u32 opcode) /* OR.B #.B,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20_0)(uae_u32 opcode) /* OR.B #.B,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_28_0)(uae_u32 opcode) /* OR.B #.B,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30_0)(uae_u32 opcode) /* OR.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_38_0)(uae_u32 opcode) /* OR.B #.B,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_39_0)(uae_u32 opcode) /* OR.B #.B,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3c_0)(uae_u32 opcode) /* ORSR.B #.W */ +{ + cpuop_begin(); +{ MakeSR(); +{ uae_s16 src = get_iword(2); + src &= 0xFF; + regs.sr |= src; + MakeFromSR(); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_40_0)(uae_u32 opcode) /* OR.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_50_0)(uae_u32 opcode) /* OR.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_58_0)(uae_u32 opcode) /* OR.W #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_60_0)(uae_u32 opcode) /* OR.W #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_68_0)(uae_u32 opcode) /* OR.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_70_0)(uae_u32 opcode) /* OR.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_78_0)(uae_u32 opcode) /* OR.W #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_79_0)(uae_u32 opcode) /* OR.W #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_7c_0)(uae_u32 opcode) /* ORSR.W #.W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel18; } +{ MakeSR(); +{ uae_s16 src = get_iword(2); + regs.sr |= src; + MakeFromSR(); +}}}m68k_incpc(4); +endlabel18: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80_0)(uae_u32 opcode) /* OR.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_90_0)(uae_u32 opcode) /* OR.L #.L,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_98_0)(uae_u32 opcode) /* OR.L #.L,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a0_0)(uae_u32 opcode) /* OR.L #.L,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a8_0)(uae_u32 opcode) /* OR.L #.L,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0_0)(uae_u32 opcode) /* OR.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{m68k_incpc(6); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b8_0)(uae_u32 opcode) /* OR.L #.L,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b9_0)(uae_u32 opcode) /* OR.L #.L,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(10); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d0_0)(uae_u32 opcode) /* CHK2.B #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel27; } +} +}}}m68k_incpc(4); +endlabel27: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e8_0)(uae_u32 opcode) /* CHK2.B #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel28; } +} +}}}m68k_incpc(6); +endlabel28: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_f0_0)(uae_u32 opcode) /* CHK2.B #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel29; } +} +}}}}endlabel29: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_f8_0)(uae_u32 opcode) /* CHK2.B #.W,(xxx).W */ +{ + cpuop_begin(); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel30; } +} +}}}m68k_incpc(6); +endlabel30: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_f9_0)(uae_u32 opcode) /* CHK2.B #.W,(xxx).L */ +{ + cpuop_begin(); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel31; } +} +}}}m68k_incpc(8); +endlabel31: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_fa_0)(uae_u32 opcode) /* CHK2.B #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel32; } +} +}}}m68k_incpc(6); +endlabel32: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_fb_0)(uae_u32 opcode) /* CHK2.B #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel33; } +} +}}}}endlabel33: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_100_0)(uae_u32 opcode) /* BTST.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_108_0)(uae_u32 opcode) /* MVPMR.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_u16 val = (get_byte(memp) << 8) + get_byte(memp + 2); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_110_0)(uae_u32 opcode) /* BTST.B Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_118_0)(uae_u32 opcode) /* BTST.B Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_120_0)(uae_u32 opcode) /* BTST.B Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_128_0)(uae_u32 opcode) /* BTST.B Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_130_0)(uae_u32 opcode) /* BTST.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_138_0)(uae_u32 opcode) /* BTST.B Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_139_0)(uae_u32 opcode) /* BTST.B Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13a_0)(uae_u32 opcode) /* BTST.B Dn,(d16,PC) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 2; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13b_0)(uae_u32 opcode) /* BTST.B Dn,(d8,PC,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13c_0)(uae_u32 opcode) /* BTST.B Dn,#.B */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = get_ibyte(2); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_140_0)(uae_u32 opcode) /* BCHG.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_148_0)(uae_u32 opcode) /* MVPMR.L (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_u32 val = (get_byte(memp) << 24) + (get_byte(memp + 2) << 16) + + (get_byte(memp + 4) << 8) + get_byte(memp + 6); + m68k_dreg(regs, dstreg) = (val); +}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_150_0)(uae_u32 opcode) /* BCHG.B Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_158_0)(uae_u32 opcode) /* BCHG.B Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_160_0)(uae_u32 opcode) /* BCHG.B Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_168_0)(uae_u32 opcode) /* BCHG.B Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_170_0)(uae_u32 opcode) /* BCHG.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_178_0)(uae_u32 opcode) /* BCHG.B Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_179_0)(uae_u32 opcode) /* BCHG.B Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_17a_0)(uae_u32 opcode) /* BCHG.B Dn,(d16,PC) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 2; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_17b_0)(uae_u32 opcode) /* BCHG.B Dn,(d8,PC,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_180_0)(uae_u32 opcode) /* BCLR.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_188_0)(uae_u32 opcode) /* MVPRM.W Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); + uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + put_byte(memp, src >> 8); put_byte(memp + 2, src); +}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_190_0)(uae_u32 opcode) /* BCLR.B Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_198_0)(uae_u32 opcode) /* BCLR.B Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1a0_0)(uae_u32 opcode) /* BCLR.B Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1a8_0)(uae_u32 opcode) /* BCLR.B Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1b0_0)(uae_u32 opcode) /* BCLR.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1b8_0)(uae_u32 opcode) /* BCLR.B Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1b9_0)(uae_u32 opcode) /* BCLR.B Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1ba_0)(uae_u32 opcode) /* BCLR.B Dn,(d16,PC) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 2; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1bb_0)(uae_u32 opcode) /* BCLR.B Dn,(d8,PC,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1c0_0)(uae_u32 opcode) /* BSET.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_1c8_0)(uae_u32 opcode) /* MVPRM.L Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); + uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + put_byte(memp, src >> 24); put_byte(memp + 2, src >> 16); + put_byte(memp + 4, src >> 8); put_byte(memp + 6, src); +}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_1d0_0)(uae_u32 opcode) /* BSET.B Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1d8_0)(uae_u32 opcode) /* BSET.B Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1e0_0)(uae_u32 opcode) /* BSET.B Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1e8_0)(uae_u32 opcode) /* BSET.B Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1f0_0)(uae_u32 opcode) /* BSET.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1f8_0)(uae_u32 opcode) /* BSET.B Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1f9_0)(uae_u32 opcode) /* BSET.B Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1fa_0)(uae_u32 opcode) /* BSET.B Dn,(d16,PC) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 2; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1fb_0)(uae_u32 opcode) /* BSET.B Dn,(d8,PC,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_200_0)(uae_u32 opcode) /* AND.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_210_0)(uae_u32 opcode) /* AND.B #.B,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_218_0)(uae_u32 opcode) /* AND.B #.B,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_220_0)(uae_u32 opcode) /* AND.B #.B,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_228_0)(uae_u32 opcode) /* AND.B #.B,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_230_0)(uae_u32 opcode) /* AND.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_238_0)(uae_u32 opcode) /* AND.B #.B,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_239_0)(uae_u32 opcode) /* AND.B #.B,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23c_0)(uae_u32 opcode) /* ANDSR.B #.W */ +{ + cpuop_begin(); +{ MakeSR(); +{ uae_s16 src = get_iword(2); + src |= 0xFF00; + regs.sr &= src; + MakeFromSR(); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_240_0)(uae_u32 opcode) /* AND.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_250_0)(uae_u32 opcode) /* AND.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_258_0)(uae_u32 opcode) /* AND.W #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_260_0)(uae_u32 opcode) /* AND.W #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_268_0)(uae_u32 opcode) /* AND.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_270_0)(uae_u32 opcode) /* AND.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_278_0)(uae_u32 opcode) /* AND.W #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_279_0)(uae_u32 opcode) /* AND.W #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_27c_0)(uae_u32 opcode) /* ANDSR.W #.W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel96; } +{ MakeSR(); +{ uae_s16 src = get_iword(2); + regs.sr &= src; + MakeFromSR(); +}}}m68k_incpc(4); +endlabel96: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_280_0)(uae_u32 opcode) /* AND.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_290_0)(uae_u32 opcode) /* AND.L #.L,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_298_0)(uae_u32 opcode) /* AND.L #.L,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2a0_0)(uae_u32 opcode) /* AND.L #.L,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2a8_0)(uae_u32 opcode) /* AND.L #.L,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2b0_0)(uae_u32 opcode) /* AND.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{m68k_incpc(6); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2b8_0)(uae_u32 opcode) /* AND.L #.L,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2b9_0)(uae_u32 opcode) /* AND.L #.L,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(10); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2d0_0)(uae_u32 opcode) /* CHK2.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel105; } +} +}}}m68k_incpc(4); +endlabel105: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2e8_0)(uae_u32 opcode) /* CHK2.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel106; } +} +}}}m68k_incpc(6); +endlabel106: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2f0_0)(uae_u32 opcode) /* CHK2.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel107; } +} +}}}}endlabel107: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2f8_0)(uae_u32 opcode) /* CHK2.W #.W,(xxx).W */ +{ + cpuop_begin(); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel108; } +} +}}}m68k_incpc(6); +endlabel108: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2f9_0)(uae_u32 opcode) /* CHK2.W #.W,(xxx).L */ +{ + cpuop_begin(); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel109; } +} +}}}m68k_incpc(8); +endlabel109: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2fa_0)(uae_u32 opcode) /* CHK2.W #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel110; } +} +}}}m68k_incpc(6); +endlabel110: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2fb_0)(uae_u32 opcode) /* CHK2.W #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel111; } +} +}}}}endlabel111: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_400_0)(uae_u32 opcode) /* SUB.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_410_0)(uae_u32 opcode) /* SUB.B #.B,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_418_0)(uae_u32 opcode) /* SUB.B #.B,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_420_0)(uae_u32 opcode) /* SUB.B #.B,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_428_0)(uae_u32 opcode) /* SUB.B #.B,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_430_0)(uae_u32 opcode) /* SUB.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_438_0)(uae_u32 opcode) /* SUB.B #.B,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_439_0)(uae_u32 opcode) /* SUB.B #.B,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_440_0)(uae_u32 opcode) /* SUB.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_450_0)(uae_u32 opcode) /* SUB.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_458_0)(uae_u32 opcode) /* SUB.W #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_460_0)(uae_u32 opcode) /* SUB.W #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_468_0)(uae_u32 opcode) /* SUB.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_470_0)(uae_u32 opcode) /* SUB.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_478_0)(uae_u32 opcode) /* SUB.W #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_479_0)(uae_u32 opcode) /* SUB.W #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_480_0)(uae_u32 opcode) /* SUB.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_490_0)(uae_u32 opcode) /* SUB.L #.L,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_498_0)(uae_u32 opcode) /* SUB.L #.L,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a0_0)(uae_u32 opcode) /* SUB.L #.L,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a8_0)(uae_u32 opcode) /* SUB.L #.L,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4b0_0)(uae_u32 opcode) /* SUB.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{m68k_incpc(6); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4b8_0)(uae_u32 opcode) /* SUB.L #.L,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4b9_0)(uae_u32 opcode) /* SUB.L #.L,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(10); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4d0_0)(uae_u32 opcode) /* CHK2.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=get_long(dsta); upper = get_long(dsta+4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel136; } +} +}}}m68k_incpc(4); +endlabel136: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4e8_0)(uae_u32 opcode) /* CHK2.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=get_long(dsta); upper = get_long(dsta+4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel137; } +} +}}}m68k_incpc(6); +endlabel137: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4f0_0)(uae_u32 opcode) /* CHK2.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=get_long(dsta); upper = get_long(dsta+4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel138; } +} +}}}}endlabel138: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4f8_0)(uae_u32 opcode) /* CHK2.L #.W,(xxx).W */ +{ + cpuop_begin(); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=get_long(dsta); upper = get_long(dsta+4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel139; } +} +}}}m68k_incpc(6); +endlabel139: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4f9_0)(uae_u32 opcode) /* CHK2.L #.W,(xxx).L */ +{ + cpuop_begin(); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=get_long(dsta); upper = get_long(dsta+4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel140; } +} +}}}m68k_incpc(8); +endlabel140: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4fa_0)(uae_u32 opcode) /* CHK2.L #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=get_long(dsta); upper = get_long(dsta+4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel141; } +} +}}}m68k_incpc(6); +endlabel141: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4fb_0)(uae_u32 opcode) /* CHK2.L #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); + {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower=get_long(dsta); upper = get_long(dsta+4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel142; } +} +}}}}endlabel142: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_600_0)(uae_u32 opcode) /* ADD.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_610_0)(uae_u32 opcode) /* ADD.B #.B,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_618_0)(uae_u32 opcode) /* ADD.B #.B,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_620_0)(uae_u32 opcode) /* ADD.B #.B,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_628_0)(uae_u32 opcode) /* ADD.B #.B,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_630_0)(uae_u32 opcode) /* ADD.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_638_0)(uae_u32 opcode) /* ADD.B #.B,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_639_0)(uae_u32 opcode) /* ADD.B #.B,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_640_0)(uae_u32 opcode) /* ADD.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_650_0)(uae_u32 opcode) /* ADD.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_658_0)(uae_u32 opcode) /* ADD.W #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_660_0)(uae_u32 opcode) /* ADD.W #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_668_0)(uae_u32 opcode) /* ADD.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_670_0)(uae_u32 opcode) /* ADD.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_678_0)(uae_u32 opcode) /* ADD.W #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_679_0)(uae_u32 opcode) /* ADD.W #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_680_0)(uae_u32 opcode) /* ADD.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_690_0)(uae_u32 opcode) /* ADD.L #.L,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_698_0)(uae_u32 opcode) /* ADD.L #.L,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_6a0_0)(uae_u32 opcode) /* ADD.L #.L,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_6a8_0)(uae_u32 opcode) /* ADD.L #.L,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_6b0_0)(uae_u32 opcode) /* ADD.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{m68k_incpc(6); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_6b8_0)(uae_u32 opcode) /* ADD.L #.L,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_6b9_0)(uae_u32 opcode) /* ADD.L #.L,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(10); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_6c0_0)(uae_u32 opcode) /* RTM.L Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{m68k_incpc(2); + op_illg(opcode); +} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_6c8_0)(uae_u32 opcode) /* RTM.L An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{m68k_incpc(2); + op_illg(opcode); +} cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6d0_0)(uae_u32 opcode) /* CALLM.L (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{m68k_incpc(2); + op_illg(opcode); +} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6e8_0)(uae_u32 opcode) /* CALLM.L (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{m68k_incpc(2); + op_illg(opcode); +} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6f0_0)(uae_u32 opcode) /* CALLM.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{m68k_incpc(2); + op_illg(opcode); +} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6f8_0)(uae_u32 opcode) /* CALLM.L (xxx).W */ +{ + cpuop_begin(); +{m68k_incpc(2); + op_illg(opcode); +} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6f9_0)(uae_u32 opcode) /* CALLM.L (xxx).L */ +{ + cpuop_begin(); +{m68k_incpc(2); + op_illg(opcode); +} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6fa_0)(uae_u32 opcode) /* CALLM.L (d16,PC) */ +{ + cpuop_begin(); +{m68k_incpc(2); + op_illg(opcode); +} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6fb_0)(uae_u32 opcode) /* CALLM.L (d8,PC,Xn) */ +{ + cpuop_begin(); +{m68k_incpc(2); + op_illg(opcode); +} cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_800_0)(uae_u32 opcode) /* BTST.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_810_0)(uae_u32 opcode) /* BTST.B #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_818_0)(uae_u32 opcode) /* BTST.B #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_820_0)(uae_u32 opcode) /* BTST.B #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_828_0)(uae_u32 opcode) /* BTST.B #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_830_0)(uae_u32 opcode) /* BTST.B #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_838_0)(uae_u32 opcode) /* BTST.B #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_839_0)(uae_u32 opcode) /* BTST.B #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_83a_0)(uae_u32 opcode) /* BTST.B #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_83b_0)(uae_u32 opcode) /* BTST.B #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_83c_0)(uae_u32 opcode) /* BTST.B #.W,#.B */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uae_s8 dst = get_ibyte(4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_840_0)(uae_u32 opcode) /* BCHG.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_850_0)(uae_u32 opcode) /* BCHG.B #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_858_0)(uae_u32 opcode) /* BCHG.B #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_860_0)(uae_u32 opcode) /* BCHG.B #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_868_0)(uae_u32 opcode) /* BCHG.B #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_870_0)(uae_u32 opcode) /* BCHG.B #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_878_0)(uae_u32 opcode) /* BCHG.B #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_879_0)(uae_u32 opcode) /* BCHG.B #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_87a_0)(uae_u32 opcode) /* BCHG.B #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_87b_0)(uae_u32 opcode) /* BCHG.B #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_880_0)(uae_u32 opcode) /* BCLR.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_890_0)(uae_u32 opcode) /* BCLR.B #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_898_0)(uae_u32 opcode) /* BCLR.B #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8a0_0)(uae_u32 opcode) /* BCLR.B #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8a8_0)(uae_u32 opcode) /* BCLR.B #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8b0_0)(uae_u32 opcode) /* BCLR.B #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8b8_0)(uae_u32 opcode) /* BCLR.B #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8b9_0)(uae_u32 opcode) /* BCLR.B #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8ba_0)(uae_u32 opcode) /* BCLR.B #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8bb_0)(uae_u32 opcode) /* BCLR.B #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8c0_0)(uae_u32 opcode) /* BSET.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8d0_0)(uae_u32 opcode) /* BSET.B #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8d8_0)(uae_u32 opcode) /* BSET.B #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8e0_0)(uae_u32 opcode) /* BSET.B #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8e8_0)(uae_u32 opcode) /* BSET.B #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8f0_0)(uae_u32 opcode) /* BSET.B #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8f8_0)(uae_u32 opcode) /* BSET.B #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8f9_0)(uae_u32 opcode) /* BSET.B #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8fa_0)(uae_u32 opcode) /* BSET.B #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8fb_0)(uae_u32 opcode) /* BSET.B #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a00_0)(uae_u32 opcode) /* EOR.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a10_0)(uae_u32 opcode) /* EOR.B #.B,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a18_0)(uae_u32 opcode) /* EOR.B #.B,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a20_0)(uae_u32 opcode) /* EOR.B #.B,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a28_0)(uae_u32 opcode) /* EOR.B #.B,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a30_0)(uae_u32 opcode) /* EOR.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a38_0)(uae_u32 opcode) /* EOR.B #.B,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a39_0)(uae_u32 opcode) /* EOR.B #.B,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a3c_0)(uae_u32 opcode) /* EORSR.B #.W */ +{ + cpuop_begin(); +{ MakeSR(); +{ uae_s16 src = get_iword(2); + src &= 0xFF; + regs.sr ^= src; + MakeFromSR(); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a40_0)(uae_u32 opcode) /* EOR.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a50_0)(uae_u32 opcode) /* EOR.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a58_0)(uae_u32 opcode) /* EOR.W #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a60_0)(uae_u32 opcode) /* EOR.W #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a68_0)(uae_u32 opcode) /* EOR.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a70_0)(uae_u32 opcode) /* EOR.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a78_0)(uae_u32 opcode) /* EOR.W #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a79_0)(uae_u32 opcode) /* EOR.W #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +#endif + +#ifdef PART_2 +void REGPARAM2 CPUFUNC(op_a7c_0)(uae_u32 opcode) /* EORSR.W #.W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel234; } +{ MakeSR(); +{ uae_s16 src = get_iword(2); + regs.sr ^= src; + MakeFromSR(); +}}}m68k_incpc(4); +endlabel234: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a80_0)(uae_u32 opcode) /* EOR.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a90_0)(uae_u32 opcode) /* EOR.L #.L,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a98_0)(uae_u32 opcode) /* EOR.L #.L,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_aa0_0)(uae_u32 opcode) /* EOR.L #.L,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_aa8_0)(uae_u32 opcode) /* EOR.L #.L,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ab0_0)(uae_u32 opcode) /* EOR.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{m68k_incpc(6); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ab8_0)(uae_u32 opcode) /* EOR.L #.L,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ab9_0)(uae_u32 opcode) /* EOR.L #.L,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(10); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ad0_0)(uae_u32 opcode) /* CAS.B #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ad8_0)(uae_u32 opcode) /* CAS.B #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ae0_0)(uae_u32 opcode) /* CAS.B #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ae8_0)(uae_u32 opcode) /* CAS.B #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_af0_0)(uae_u32 opcode) /* CAS.B #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_af8_0)(uae_u32 opcode) /* CAS.B #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_af9_0)(uae_u32 opcode) /* CAS.B #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c00_0)(uae_u32 opcode) /* CMP.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c10_0)(uae_u32 opcode) /* CMP.B #.B,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c18_0)(uae_u32 opcode) /* CMP.B #.B,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c20_0)(uae_u32 opcode) /* CMP.B #.B,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c28_0)(uae_u32 opcode) /* CMP.B #.B,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c30_0)(uae_u32 opcode) /* CMP.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c38_0)(uae_u32 opcode) /* CMP.B #.B,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c39_0)(uae_u32 opcode) /* CMP.B #.B,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c3a_0)(uae_u32 opcode) /* CMP.B #.B,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c3b_0)(uae_u32 opcode) /* CMP.B #.B,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s8 src = get_ibyte(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c40_0)(uae_u32 opcode) /* CMP.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c50_0)(uae_u32 opcode) /* CMP.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c58_0)(uae_u32 opcode) /* CMP.W #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c60_0)(uae_u32 opcode) /* CMP.W #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c68_0)(uae_u32 opcode) /* CMP.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c70_0)(uae_u32 opcode) /* CMP.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c78_0)(uae_u32 opcode) /* CMP.W #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c79_0)(uae_u32 opcode) /* CMP.W #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c7a_0)(uae_u32 opcode) /* CMP.W #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c7b_0)(uae_u32 opcode) /* CMP.W #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c80_0)(uae_u32 opcode) /* CMP.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c90_0)(uae_u32 opcode) /* CMP.L #.L,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c98_0)(uae_u32 opcode) /* CMP.L #.L,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ca0_0)(uae_u32 opcode) /* CMP.L #.L,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ca8_0)(uae_u32 opcode) /* CMP.L #.L,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cb0_0)(uae_u32 opcode) /* CMP.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{m68k_incpc(6); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cb8_0)(uae_u32 opcode) /* CMP.L #.L,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cb9_0)(uae_u32 opcode) /* CMP.L #.L,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(10); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cba_0)(uae_u32 opcode) /* CMP.L #.L,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_getpc () + 6; + dsta += (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cbb_0)(uae_u32 opcode) /* CMP.L #.L,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s32 src = get_ilong(2); +{m68k_incpc(6); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cd0_0)(uae_u32 opcode) /* CAS.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cd8_0)(uae_u32 opcode) /* CAS.W #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ce0_0)(uae_u32 opcode) /* CAS.W #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ce8_0)(uae_u32 opcode) /* CAS.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cf0_0)(uae_u32 opcode) /* CAS.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cf8_0)(uae_u32 opcode) /* CAS.W #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cf9_0)(uae_u32 opcode) /* CAS.W #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cfc_0)(uae_u32 opcode) /* CAS2.W #.L */ +{ + cpuop_begin(); +{{ uae_s32 extra = get_ilong(2); + uae_u32 rn1 = regs.regs[(extra >> 28) & 15]; + uae_u32 rn2 = regs.regs[(extra >> 12) & 15]; + uae_u16 dst1 = get_word(rn1), dst2 = get_word(rn2); +{uae_u32 newv = ((uae_s16)(dst1)) - ((uae_s16)(m68k_dreg(regs, (extra >> 16) & 7))); +{ int flgs = ((uae_s16)(m68k_dreg(regs, (extra >> 16) & 7))) < 0; + int flgo = ((uae_s16)(dst1)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg(regs, (extra >> 16) & 7))) > ((uae_u16)(dst1))); + SET_NFLG (flgn != 0); + if (GET_ZFLG) { +{uae_u32 newv = ((uae_s16)(dst2)) - ((uae_s16)(m68k_dreg(regs, extra & 7))); +{ int flgs = ((uae_s16)(m68k_dreg(regs, extra & 7))) < 0; + int flgo = ((uae_s16)(dst2)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg(regs, extra & 7))) > ((uae_u16)(dst2))); + SET_NFLG (flgn != 0); + if (GET_ZFLG) { + put_word(rn1, m68k_dreg(regs, (extra >> 22) & 7)); + put_word(rn1, m68k_dreg(regs, (extra >> 6) & 7)); + }} +}}}} if (! GET_ZFLG) { + m68k_dreg(regs, (extra >> 22) & 7) = (m68k_dreg(regs, (extra >> 22) & 7) & ~0xffff) | (dst1 & 0xffff); + m68k_dreg(regs, (extra >> 6) & 7) = (m68k_dreg(regs, (extra >> 6) & 7) & ~0xffff) | (dst2 & 0xffff); + } +}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e10_0)(uae_u32 opcode) /* MOVES.B #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel288; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg); + put_byte(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg); +{ uae_s8 src = get_byte(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } +}}}}}}m68k_incpc(4); +endlabel288: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e18_0)(uae_u32 opcode) /* MOVES.B #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel289; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + put_byte(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } +}}}}}}m68k_incpc(4); +endlabel289: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e20_0)(uae_u32 opcode) /* MOVES.B #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel290; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + put_byte(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, dstreg) = srca; + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } +}}}}}}m68k_incpc(4); +endlabel290: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e28_0)(uae_u32 opcode) /* MOVES.B #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel291; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + put_byte(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s8 src = get_byte(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } +}}}}}}m68k_incpc(8); +endlabel291: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e30_0)(uae_u32 opcode) /* MOVES.B #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel292; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + put_byte(dsta,src); +}}}else{{{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 src = get_byte(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } +}}}}}}}endlabel292: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e38_0)(uae_u32 opcode) /* MOVES.B #.W,(xxx).W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel293; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + put_byte(dsta,src); +}}else{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(6); +{ uae_s8 src = get_byte(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } +}}}}}}m68k_incpc(8); +endlabel293: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e39_0)(uae_u32 opcode) /* MOVES.B #.W,(xxx).L */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel294; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = get_ilong(4); + put_byte(dsta,src); +}}else{{ uaecptr srca = get_ilong(8); +{ uae_s8 src = get_byte(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } +}}}}}}m68k_incpc(12); +endlabel294: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e50_0)(uae_u32 opcode) /* MOVES.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel295; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg); + put_word(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg); +{ uae_s16 src = get_word(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } +}}}}}}m68k_incpc(4); +endlabel295: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e58_0)(uae_u32 opcode) /* MOVES.W #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel296; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + put_word(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, dstreg) += 2; + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } +}}}}}}m68k_incpc(4); +endlabel296: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e60_0)(uae_u32 opcode) /* MOVES.W #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel297; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + put_word(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, dstreg) = srca; + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } +}}}}}}m68k_incpc(4); +endlabel297: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e68_0)(uae_u32 opcode) /* MOVES.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel298; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + put_word(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s16 src = get_word(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } +}}}}}}m68k_incpc(8); +endlabel298: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e70_0)(uae_u32 opcode) /* MOVES.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel299; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + put_word(dsta,src); +}}}else{{{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 src = get_word(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } +}}}}}}}endlabel299: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e78_0)(uae_u32 opcode) /* MOVES.W #.W,(xxx).W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel300; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + put_word(dsta,src); +}}else{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(6); +{ uae_s16 src = get_word(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } +}}}}}}m68k_incpc(8); +endlabel300: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e79_0)(uae_u32 opcode) /* MOVES.W #.W,(xxx).L */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel301; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = get_ilong(4); + put_word(dsta,src); +}}else{{ uaecptr srca = get_ilong(8); +{ uae_s16 src = get_word(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } +}}}}}}m68k_incpc(12); +endlabel301: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e90_0)(uae_u32 opcode) /* MOVES.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel302; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg); + put_long(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg); +{ uae_s32 src = get_long(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (src); + } +}}}}}}m68k_incpc(4); +endlabel302: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_e98_0)(uae_u32 opcode) /* MOVES.L #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel303; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + put_long(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, dstreg) += 4; + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (src); + } +}}}}}}m68k_incpc(4); +endlabel303: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_ea0_0)(uae_u32 opcode) /* MOVES.L #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel304; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + put_long(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, dstreg) = srca; + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (src); + } +}}}}}}m68k_incpc(4); +endlabel304: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_ea8_0)(uae_u32 opcode) /* MOVES.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel305; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + put_long(dsta,src); +}}else{{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 src = get_long(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (src); + } +}}}}}}m68k_incpc(8); +endlabel305: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_eb0_0)(uae_u32 opcode) /* MOVES.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel306; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + put_long(dsta,src); +}}}else{{{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 src = get_long(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (src); + } +}}}}}}}endlabel306: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_eb8_0)(uae_u32 opcode) /* MOVES.L #.W,(xxx).W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel307; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + put_long(dsta,src); +}}else{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 src = get_long(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (src); + } +}}}}}}m68k_incpc(8); +endlabel307: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_eb9_0)(uae_u32 opcode) /* MOVES.L #.W,(xxx).L */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel308; } +{{ uae_s16 extra = get_iword(2); + if (extra & 0x800) +{ uae_u32 src = regs.regs[(extra >> 12) & 15]; +{ uaecptr dsta = get_ilong(4); + put_long(dsta,src); +}}else{{ uaecptr srca = get_ilong(8); +{ uae_s32 src = get_long(srca); + if (extra & 0x8000) { + m68k_areg(regs, (extra >> 12) & 7) = src; + } else { + m68k_dreg(regs, (extra >> 12) & 7) = (src); + } +}}}}}}m68k_incpc(12); +endlabel308: ; + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_ed0_0)(uae_u32 opcode) /* CAS.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ed8_0)(uae_u32 opcode) /* CAS.L #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ee0_0)(uae_u32 opcode) /* CAS.L #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ee8_0)(uae_u32 opcode) /* CAS.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 dst = get_long(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ef0_0)(uae_u32 opcode) /* CAS.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ef8_0)(uae_u32 opcode) /* CAS.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 dst = get_long(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ef9_0)(uae_u32 opcode) /* CAS.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s32 dst = get_long(dsta); +{ int ru = (src >> 6) & 7; + int rc = src & 7; +{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc))); +{ int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru))); +}else{m68k_dreg(regs, rc) = dst; +}}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_efc_0)(uae_u32 opcode) /* CAS2.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 extra = get_ilong(2); + uae_u32 rn1 = regs.regs[(extra >> 28) & 15]; + uae_u32 rn2 = regs.regs[(extra >> 12) & 15]; + uae_u32 dst1 = get_long(rn1), dst2 = get_long(rn2); +{uae_u32 newv = ((uae_s32)(dst1)) - ((uae_s32)(m68k_dreg(regs, (extra >> 16) & 7))); +{ int flgs = ((uae_s32)(m68k_dreg(regs, (extra >> 16) & 7))) < 0; + int flgo = ((uae_s32)(dst1)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg(regs, (extra >> 16) & 7))) > ((uae_u32)(dst1))); + SET_NFLG (flgn != 0); + if (GET_ZFLG) { +{uae_u32 newv = ((uae_s32)(dst2)) - ((uae_s32)(m68k_dreg(regs, extra & 7))); +{ int flgs = ((uae_s32)(m68k_dreg(regs, extra & 7))) < 0; + int flgo = ((uae_s32)(dst2)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg(regs, extra & 7))) > ((uae_u32)(dst2))); + SET_NFLG (flgn != 0); + if (GET_ZFLG) { + put_long(rn1, m68k_dreg(regs, (extra >> 22) & 7)); + put_long(rn1, m68k_dreg(regs, (extra >> 6) & 7)); + }} +}}}} if (! GET_ZFLG) { + m68k_dreg(regs, (extra >> 22) & 7) = dst1; + m68k_dreg(regs, (extra >> 6) & 7) = dst2; + } +}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1000_0)(uae_u32 opcode) /* MOVE.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1010_0)(uae_u32 opcode) /* MOVE.B (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1018_0)(uae_u32 opcode) /* MOVE.B (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1020_0)(uae_u32 opcode) /* MOVE.B -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1028_0)(uae_u32 opcode) /* MOVE.B (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1030_0)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1038_0)(uae_u32 opcode) /* MOVE.B (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1039_0)(uae_u32 opcode) /* MOVE.B (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_103a_0)(uae_u32 opcode) /* MOVE.B (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_103b_0)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_103c_0)(uae_u32 opcode) /* MOVE.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1080_0)(uae_u32 opcode) /* MOVE.B Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1090_0)(uae_u32 opcode) /* MOVE.B (An),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1098_0)(uae_u32 opcode) /* MOVE.B (An)+,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10a0_0)(uae_u32 opcode) /* MOVE.B -(An),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10a8_0)(uae_u32 opcode) /* MOVE.B (d16,An),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10b0_0)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10b8_0)(uae_u32 opcode) /* MOVE.B (xxx).W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10b9_0)(uae_u32 opcode) /* MOVE.B (xxx).L,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10ba_0)(uae_u32 opcode) /* MOVE.B (d16,PC),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10bb_0)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10bc_0)(uae_u32 opcode) /* MOVE.B #.B,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10c0_0)(uae_u32 opcode) /* MOVE.B Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10d0_0)(uae_u32 opcode) /* MOVE.B (An),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10d8_0)(uae_u32 opcode) /* MOVE.B (An)+,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10e0_0)(uae_u32 opcode) /* MOVE.B -(An),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10e8_0)(uae_u32 opcode) /* MOVE.B (d16,An),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10f0_0)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10f8_0)(uae_u32 opcode) /* MOVE.B (xxx).W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10f9_0)(uae_u32 opcode) /* MOVE.B (xxx).L,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10fa_0)(uae_u32 opcode) /* MOVE.B (d16,PC),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10fb_0)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10fc_0)(uae_u32 opcode) /* MOVE.B #.B,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1100_0)(uae_u32 opcode) /* MOVE.B Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1110_0)(uae_u32 opcode) /* MOVE.B (An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1118_0)(uae_u32 opcode) /* MOVE.B (An)+,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1120_0)(uae_u32 opcode) /* MOVE.B -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1128_0)(uae_u32 opcode) /* MOVE.B (d16,An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1130_0)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1138_0)(uae_u32 opcode) /* MOVE.B (xxx).W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1139_0)(uae_u32 opcode) /* MOVE.B (xxx).L,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_113a_0)(uae_u32 opcode) /* MOVE.B (d16,PC),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_113b_0)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_113c_0)(uae_u32 opcode) /* MOVE.B #.B,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1140_0)(uae_u32 opcode) /* MOVE.B Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1150_0)(uae_u32 opcode) /* MOVE.B (An),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1158_0)(uae_u32 opcode) /* MOVE.B (An)+,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1160_0)(uae_u32 opcode) /* MOVE.B -(An),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1168_0)(uae_u32 opcode) /* MOVE.B (d16,An),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1170_0)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1178_0)(uae_u32 opcode) /* MOVE.B (xxx).W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1179_0)(uae_u32 opcode) /* MOVE.B (xxx).L,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_117a_0)(uae_u32 opcode) /* MOVE.B (d16,PC),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_117b_0)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_117c_0)(uae_u32 opcode) /* MOVE.B #.B,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1180_0)(uae_u32 opcode) /* MOVE.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1190_0)(uae_u32 opcode) /* MOVE.B (An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1198_0)(uae_u32 opcode) /* MOVE.B (An)+,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11a0_0)(uae_u32 opcode) /* MOVE.B -(An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11a8_0)(uae_u32 opcode) /* MOVE.B (d16,An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11b0_0)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11b8_0)(uae_u32 opcode) /* MOVE.B (xxx).W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11b9_0)(uae_u32 opcode) /* MOVE.B (xxx).L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{m68k_incpc(6); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11ba_0)(uae_u32 opcode) /* MOVE.B (d16,PC),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11bb_0)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11bc_0)(uae_u32 opcode) /* MOVE.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11c0_0)(uae_u32 opcode) /* MOVE.B Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11d0_0)(uae_u32 opcode) /* MOVE.B (An),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11d8_0)(uae_u32 opcode) /* MOVE.B (An)+,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11e0_0)(uae_u32 opcode) /* MOVE.B -(An),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11e8_0)(uae_u32 opcode) /* MOVE.B (d16,An),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11f0_0)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11f8_0)(uae_u32 opcode) /* MOVE.B (xxx).W,(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11f9_0)(uae_u32 opcode) /* MOVE.B (xxx).L,(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11fa_0)(uae_u32 opcode) /* MOVE.B (d16,PC),(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11fb_0)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(xxx).W */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11fc_0)(uae_u32 opcode) /* MOVE.B #.B,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13c0_0)(uae_u32 opcode) /* MOVE.B Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13d0_0)(uae_u32 opcode) /* MOVE.B (An),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13d8_0)(uae_u32 opcode) /* MOVE.B (An)+,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13e0_0)(uae_u32 opcode) /* MOVE.B -(An),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13e8_0)(uae_u32 opcode) /* MOVE.B (d16,An),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13f0_0)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13f8_0)(uae_u32 opcode) /* MOVE.B (xxx).W,(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13f9_0)(uae_u32 opcode) /* MOVE.B (xxx).L,(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(10); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13fa_0)(uae_u32 opcode) /* MOVE.B (d16,PC),(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13fb_0)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(xxx).L */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13fc_0)(uae_u32 opcode) /* MOVE.B #.B,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2000_0)(uae_u32 opcode) /* MOVE.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2008_0)(uae_u32 opcode) /* MOVE.L An,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2010_0)(uae_u32 opcode) /* MOVE.L (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2018_0)(uae_u32 opcode) /* MOVE.L (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2020_0)(uae_u32 opcode) /* MOVE.L -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2028_0)(uae_u32 opcode) /* MOVE.L (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2030_0)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2038_0)(uae_u32 opcode) /* MOVE.L (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2039_0)(uae_u32 opcode) /* MOVE.L (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_203a_0)(uae_u32 opcode) /* MOVE.L (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_203b_0)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_203c_0)(uae_u32 opcode) /* MOVE.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_2040_0)(uae_u32 opcode) /* MOVEA.L Dn,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_2048_0)(uae_u32 opcode) /* MOVEA.L An,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_2050_0)(uae_u32 opcode) /* MOVEA.L (An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_2058_0)(uae_u32 opcode) /* MOVEA.L (An)+,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_2060_0)(uae_u32 opcode) /* MOVEA.L -(An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_2068_0)(uae_u32 opcode) /* MOVEA.L (d16,An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_2070_0)(uae_u32 opcode) /* MOVEA.L (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_2078_0)(uae_u32 opcode) /* MOVEA.L (xxx).W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_2079_0)(uae_u32 opcode) /* MOVEA.L (xxx).L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_207a_0)(uae_u32 opcode) /* MOVEA.L (d16,PC),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_207b_0)(uae_u32 opcode) /* MOVEA.L (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_207c_0)(uae_u32 opcode) /* MOVEA.L #.L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_2080_0)(uae_u32 opcode) /* MOVE.L Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2088_0)(uae_u32 opcode) /* MOVE.L An,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2090_0)(uae_u32 opcode) /* MOVE.L (An),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2098_0)(uae_u32 opcode) /* MOVE.L (An)+,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20a0_0)(uae_u32 opcode) /* MOVE.L -(An),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20a8_0)(uae_u32 opcode) /* MOVE.L (d16,An),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20b0_0)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20b8_0)(uae_u32 opcode) /* MOVE.L (xxx).W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20b9_0)(uae_u32 opcode) /* MOVE.L (xxx).L,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20ba_0)(uae_u32 opcode) /* MOVE.L (d16,PC),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20bb_0)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20bc_0)(uae_u32 opcode) /* MOVE.L #.L,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20c0_0)(uae_u32 opcode) /* MOVE.L Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20c8_0)(uae_u32 opcode) /* MOVE.L An,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20d0_0)(uae_u32 opcode) /* MOVE.L (An),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20d8_0)(uae_u32 opcode) /* MOVE.L (An)+,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20e0_0)(uae_u32 opcode) /* MOVE.L -(An),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20e8_0)(uae_u32 opcode) /* MOVE.L (d16,An),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20f0_0)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20f8_0)(uae_u32 opcode) /* MOVE.L (xxx).W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20f9_0)(uae_u32 opcode) /* MOVE.L (xxx).L,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20fa_0)(uae_u32 opcode) /* MOVE.L (d16,PC),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20fb_0)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20fc_0)(uae_u32 opcode) /* MOVE.L #.L,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2100_0)(uae_u32 opcode) /* MOVE.L Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2108_0)(uae_u32 opcode) /* MOVE.L An,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2110_0)(uae_u32 opcode) /* MOVE.L (An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2118_0)(uae_u32 opcode) /* MOVE.L (An)+,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2120_0)(uae_u32 opcode) /* MOVE.L -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2128_0)(uae_u32 opcode) /* MOVE.L (d16,An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2130_0)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2138_0)(uae_u32 opcode) /* MOVE.L (xxx).W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2139_0)(uae_u32 opcode) /* MOVE.L (xxx).L,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_213a_0)(uae_u32 opcode) /* MOVE.L (d16,PC),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_213b_0)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_213c_0)(uae_u32 opcode) /* MOVE.L #.L,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2140_0)(uae_u32 opcode) /* MOVE.L Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2148_0)(uae_u32 opcode) /* MOVE.L An,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2150_0)(uae_u32 opcode) /* MOVE.L (An),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +#endif + +#ifdef PART_3 +void REGPARAM2 CPUFUNC(op_2158_0)(uae_u32 opcode) /* MOVE.L (An)+,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2160_0)(uae_u32 opcode) /* MOVE.L -(An),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2168_0)(uae_u32 opcode) /* MOVE.L (d16,An),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2170_0)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2178_0)(uae_u32 opcode) /* MOVE.L (xxx).W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2179_0)(uae_u32 opcode) /* MOVE.L (xxx).L,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_217a_0)(uae_u32 opcode) /* MOVE.L (d16,PC),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_217b_0)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_217c_0)(uae_u32 opcode) /* MOVE.L #.L,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2180_0)(uae_u32 opcode) /* MOVE.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2188_0)(uae_u32 opcode) /* MOVE.L An,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2190_0)(uae_u32 opcode) /* MOVE.L (An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2198_0)(uae_u32 opcode) /* MOVE.L (An)+,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21a0_0)(uae_u32 opcode) /* MOVE.L -(An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21a8_0)(uae_u32 opcode) /* MOVE.L (d16,An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21b0_0)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21b8_0)(uae_u32 opcode) /* MOVE.L (xxx).W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21b9_0)(uae_u32 opcode) /* MOVE.L (xxx).L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{m68k_incpc(6); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21ba_0)(uae_u32 opcode) /* MOVE.L (d16,PC),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21bb_0)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21bc_0)(uae_u32 opcode) /* MOVE.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{m68k_incpc(6); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21c0_0)(uae_u32 opcode) /* MOVE.L Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21c8_0)(uae_u32 opcode) /* MOVE.L An,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21d0_0)(uae_u32 opcode) /* MOVE.L (An),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21d8_0)(uae_u32 opcode) /* MOVE.L (An)+,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21e0_0)(uae_u32 opcode) /* MOVE.L -(An),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21e8_0)(uae_u32 opcode) /* MOVE.L (d16,An),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21f0_0)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21f8_0)(uae_u32 opcode) /* MOVE.L (xxx).W,(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21f9_0)(uae_u32 opcode) /* MOVE.L (xxx).L,(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21fa_0)(uae_u32 opcode) /* MOVE.L (d16,PC),(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21fb_0)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(xxx).W */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21fc_0)(uae_u32 opcode) /* MOVE.L #.L,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23c0_0)(uae_u32 opcode) /* MOVE.L Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23c8_0)(uae_u32 opcode) /* MOVE.L An,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23d0_0)(uae_u32 opcode) /* MOVE.L (An),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23d8_0)(uae_u32 opcode) /* MOVE.L (An)+,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23e0_0)(uae_u32 opcode) /* MOVE.L -(An),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23e8_0)(uae_u32 opcode) /* MOVE.L (d16,An),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23f0_0)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23f8_0)(uae_u32 opcode) /* MOVE.L (xxx).W,(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23f9_0)(uae_u32 opcode) /* MOVE.L (xxx).L,(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(10); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23fa_0)(uae_u32 opcode) /* MOVE.L (d16,PC),(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23fb_0)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(xxx).L */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23fc_0)(uae_u32 opcode) /* MOVE.L #.L,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(10); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3000_0)(uae_u32 opcode) /* MOVE.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3008_0)(uae_u32 opcode) /* MOVE.W An,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3010_0)(uae_u32 opcode) /* MOVE.W (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3018_0)(uae_u32 opcode) /* MOVE.W (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3020_0)(uae_u32 opcode) /* MOVE.W -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3028_0)(uae_u32 opcode) /* MOVE.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3030_0)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3038_0)(uae_u32 opcode) /* MOVE.W (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3039_0)(uae_u32 opcode) /* MOVE.W (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_303a_0)(uae_u32 opcode) /* MOVE.W (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_303b_0)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_303c_0)(uae_u32 opcode) /* MOVE.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_3040_0)(uae_u32 opcode) /* MOVEA.W Dn,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_3048_0)(uae_u32 opcode) /* MOVEA.W An,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_3050_0)(uae_u32 opcode) /* MOVEA.W (An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_3058_0)(uae_u32 opcode) /* MOVEA.W (An)+,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_3060_0)(uae_u32 opcode) /* MOVEA.W -(An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_3068_0)(uae_u32 opcode) /* MOVEA.W (d16,An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_3070_0)(uae_u32 opcode) /* MOVEA.W (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_3078_0)(uae_u32 opcode) /* MOVEA.W (xxx).W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_3079_0)(uae_u32 opcode) /* MOVEA.W (xxx).L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_307a_0)(uae_u32 opcode) /* MOVEA.W (d16,PC),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_307b_0)(uae_u32 opcode) /* MOVEA.W (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_307c_0)(uae_u32 opcode) /* MOVEA.W #.W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_3080_0)(uae_u32 opcode) /* MOVE.W Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3088_0)(uae_u32 opcode) /* MOVE.W An,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3090_0)(uae_u32 opcode) /* MOVE.W (An),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3098_0)(uae_u32 opcode) /* MOVE.W (An)+,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30a0_0)(uae_u32 opcode) /* MOVE.W -(An),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30a8_0)(uae_u32 opcode) /* MOVE.W (d16,An),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30b0_0)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30b8_0)(uae_u32 opcode) /* MOVE.W (xxx).W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30b9_0)(uae_u32 opcode) /* MOVE.W (xxx).L,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30ba_0)(uae_u32 opcode) /* MOVE.W (d16,PC),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30bb_0)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30bc_0)(uae_u32 opcode) /* MOVE.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30c0_0)(uae_u32 opcode) /* MOVE.W Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30c8_0)(uae_u32 opcode) /* MOVE.W An,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30d0_0)(uae_u32 opcode) /* MOVE.W (An),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30d8_0)(uae_u32 opcode) /* MOVE.W (An)+,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30e0_0)(uae_u32 opcode) /* MOVE.W -(An),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30e8_0)(uae_u32 opcode) /* MOVE.W (d16,An),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30f0_0)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30f8_0)(uae_u32 opcode) /* MOVE.W (xxx).W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30f9_0)(uae_u32 opcode) /* MOVE.W (xxx).L,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30fa_0)(uae_u32 opcode) /* MOVE.W (d16,PC),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30fb_0)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30fc_0)(uae_u32 opcode) /* MOVE.W #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3100_0)(uae_u32 opcode) /* MOVE.W Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3108_0)(uae_u32 opcode) /* MOVE.W An,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3110_0)(uae_u32 opcode) /* MOVE.W (An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3118_0)(uae_u32 opcode) /* MOVE.W (An)+,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3120_0)(uae_u32 opcode) /* MOVE.W -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3128_0)(uae_u32 opcode) /* MOVE.W (d16,An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3130_0)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3138_0)(uae_u32 opcode) /* MOVE.W (xxx).W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3139_0)(uae_u32 opcode) /* MOVE.W (xxx).L,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_313a_0)(uae_u32 opcode) /* MOVE.W (d16,PC),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_313b_0)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_313c_0)(uae_u32 opcode) /* MOVE.W #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3140_0)(uae_u32 opcode) /* MOVE.W Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3148_0)(uae_u32 opcode) /* MOVE.W An,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3150_0)(uae_u32 opcode) /* MOVE.W (An),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3158_0)(uae_u32 opcode) /* MOVE.W (An)+,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3160_0)(uae_u32 opcode) /* MOVE.W -(An),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3168_0)(uae_u32 opcode) /* MOVE.W (d16,An),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3170_0)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3178_0)(uae_u32 opcode) /* MOVE.W (xxx).W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3179_0)(uae_u32 opcode) /* MOVE.W (xxx).L,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_317a_0)(uae_u32 opcode) /* MOVE.W (d16,PC),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_317b_0)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_317c_0)(uae_u32 opcode) /* MOVE.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3180_0)(uae_u32 opcode) /* MOVE.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3188_0)(uae_u32 opcode) /* MOVE.W An,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3190_0)(uae_u32 opcode) /* MOVE.W (An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3198_0)(uae_u32 opcode) /* MOVE.W (An)+,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31a0_0)(uae_u32 opcode) /* MOVE.W -(An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31a8_0)(uae_u32 opcode) /* MOVE.W (d16,An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31b0_0)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31b8_0)(uae_u32 opcode) /* MOVE.W (xxx).W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31b9_0)(uae_u32 opcode) /* MOVE.W (xxx).L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{m68k_incpc(6); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31ba_0)(uae_u32 opcode) /* MOVE.W (d16,PC),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31bb_0)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31bc_0)(uae_u32 opcode) /* MOVE.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31c0_0)(uae_u32 opcode) /* MOVE.W Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31c8_0)(uae_u32 opcode) /* MOVE.W An,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31d0_0)(uae_u32 opcode) /* MOVE.W (An),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31d8_0)(uae_u32 opcode) /* MOVE.W (An)+,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31e0_0)(uae_u32 opcode) /* MOVE.W -(An),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31e8_0)(uae_u32 opcode) /* MOVE.W (d16,An),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31f0_0)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31f8_0)(uae_u32 opcode) /* MOVE.W (xxx).W,(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31f9_0)(uae_u32 opcode) /* MOVE.W (xxx).L,(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31fa_0)(uae_u32 opcode) /* MOVE.W (d16,PC),(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31fb_0)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(xxx).W */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31fc_0)(uae_u32 opcode) /* MOVE.W #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33c0_0)(uae_u32 opcode) /* MOVE.W Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33c8_0)(uae_u32 opcode) /* MOVE.W An,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33d0_0)(uae_u32 opcode) /* MOVE.W (An),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33d8_0)(uae_u32 opcode) /* MOVE.W (An)+,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33e0_0)(uae_u32 opcode) /* MOVE.W -(An),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33e8_0)(uae_u32 opcode) /* MOVE.W (d16,An),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33f0_0)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33f8_0)(uae_u32 opcode) /* MOVE.W (xxx).W,(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33f9_0)(uae_u32 opcode) /* MOVE.W (xxx).L,(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(10); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33fa_0)(uae_u32 opcode) /* MOVE.W (d16,PC),(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33fb_0)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(xxx).L */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(0); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33fc_0)(uae_u32 opcode) /* MOVE.W #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4000_0)(uae_u32 opcode) /* NEGX.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4010_0)(uae_u32 opcode) /* NEGX.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4018_0)(uae_u32 opcode) /* NEGX.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4020_0)(uae_u32 opcode) /* NEGX.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4028_0)(uae_u32 opcode) /* NEGX.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4030_0)(uae_u32 opcode) /* NEGX.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4038_0)(uae_u32 opcode) /* NEGX.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4039_0)(uae_u32 opcode) /* NEGX.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4040_0)(uae_u32 opcode) /* NEGX.W Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((newv) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4050_0)(uae_u32 opcode) /* NEGX.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4058_0)(uae_u32 opcode) /* NEGX.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4060_0)(uae_u32 opcode) /* NEGX.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4068_0)(uae_u32 opcode) /* NEGX.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4070_0)(uae_u32 opcode) /* NEGX.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4078_0)(uae_u32 opcode) /* NEGX.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4079_0)(uae_u32 opcode) /* NEGX.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4080_0)(uae_u32 opcode) /* NEGX.L Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, srcreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4090_0)(uae_u32 opcode) /* NEGX.L (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4098_0)(uae_u32 opcode) /* NEGX.L (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_40a0_0)(uae_u32 opcode) /* NEGX.L -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_40a8_0)(uae_u32 opcode) /* NEGX.L (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_40b0_0)(uae_u32 opcode) /* NEGX.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_40b8_0)(uae_u32 opcode) /* NEGX.L (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_40b9_0)(uae_u32 opcode) /* NEGX.L (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40c0_0)(uae_u32 opcode) /* MVSR2.W Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel645; } +{{ MakeSR(); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); +}}}m68k_incpc(2); +endlabel645: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40d0_0)(uae_u32 opcode) /* MVSR2.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel646; } +{{ uaecptr srca = m68k_areg(regs, srcreg); + MakeSR(); + put_word(srca,regs.sr); +}}}m68k_incpc(2); +endlabel646: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40d8_0)(uae_u32 opcode) /* MVSR2.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel647; } +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += 2; + MakeSR(); + put_word(srca,regs.sr); +}}}m68k_incpc(2); +endlabel647: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40e0_0)(uae_u32 opcode) /* MVSR2.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel648; } +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + MakeSR(); + put_word(srca,regs.sr); +}}}m68k_incpc(2); +endlabel648: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40e8_0)(uae_u32 opcode) /* MVSR2.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel649; } +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + MakeSR(); + put_word(srca,regs.sr); +}}}m68k_incpc(4); +endlabel649: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40f0_0)(uae_u32 opcode) /* MVSR2.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel650; } +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); + MakeSR(); + put_word(srca,regs.sr); +}}}}endlabel650: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40f8_0)(uae_u32 opcode) /* MVSR2.W (xxx).W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel651; } +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + MakeSR(); + put_word(srca,regs.sr); +}}}m68k_incpc(4); +endlabel651: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40f9_0)(uae_u32 opcode) /* MVSR2.W (xxx).L */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel652; } +{{ uaecptr srca = get_ilong(2); + MakeSR(); + put_word(srca,regs.sr); +}}}m68k_incpc(6); +endlabel652: ; + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_4100_0)(uae_u32 opcode) /* CHK.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel653; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel653; } +}}}m68k_incpc(2); +endlabel653: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4110_0)(uae_u32 opcode) /* CHK.L (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel654; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel654; } +}}}}m68k_incpc(2); +endlabel654: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4118_0)(uae_u32 opcode) /* CHK.L (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel655; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel655; } +}}}}m68k_incpc(2); +endlabel655: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4120_0)(uae_u32 opcode) /* CHK.L -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel656; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel656; } +}}}}m68k_incpc(2); +endlabel656: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4128_0)(uae_u32 opcode) /* CHK.L (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel657; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel657; } +}}}}m68k_incpc(4); +endlabel657: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4130_0)(uae_u32 opcode) /* CHK.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel658; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel658; } +}}}}}endlabel658: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4138_0)(uae_u32 opcode) /* CHK.L (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel659; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel659; } +}}}}m68k_incpc(4); +endlabel659: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4139_0)(uae_u32 opcode) /* CHK.L (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel660; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel660; } +}}}}m68k_incpc(6); +endlabel660: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_413a_0)(uae_u32 opcode) /* CHK.L (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel661; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel661; } +}}}}m68k_incpc(4); +endlabel661: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_413b_0)(uae_u32 opcode) /* CHK.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel662; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel662; } +}}}}}endlabel662: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_413c_0)(uae_u32 opcode) /* CHK.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel663; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel663; } +}}}m68k_incpc(6); +endlabel663: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4180_0)(uae_u32 opcode) /* CHK.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel664; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel664; } +}}}m68k_incpc(2); +endlabel664: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4190_0)(uae_u32 opcode) /* CHK.W (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel665; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel665; } +}}}}m68k_incpc(2); +endlabel665: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4198_0)(uae_u32 opcode) /* CHK.W (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel666; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel666; } +}}}}m68k_incpc(2); +endlabel666: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_41a0_0)(uae_u32 opcode) /* CHK.W -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel667; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel667; } +}}}}m68k_incpc(2); +endlabel667: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_41a8_0)(uae_u32 opcode) /* CHK.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel668; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel668; } +}}}}m68k_incpc(4); +endlabel668: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_41b0_0)(uae_u32 opcode) /* CHK.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel669; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel669; } +}}}}}endlabel669: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_41b8_0)(uae_u32 opcode) /* CHK.W (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel670; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel670; } +}}}}m68k_incpc(4); +endlabel670: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_41b9_0)(uae_u32 opcode) /* CHK.W (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel671; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel671; } +}}}}m68k_incpc(6); +endlabel671: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_41ba_0)(uae_u32 opcode) /* CHK.W (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel672; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel672; } +}}}}m68k_incpc(4); +endlabel672: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_41bb_0)(uae_u32 opcode) /* CHK.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel673; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel673; } +}}}}}endlabel673: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_41bc_0)(uae_u32 opcode) /* CHK.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel674; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel674; } +}}}m68k_incpc(4); +endlabel674: ; + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_41d0_0)(uae_u32 opcode) /* LEA.L (An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ m68k_areg(regs, dstreg) = (srca); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_41e8_0)(uae_u32 opcode) /* LEA.L (d16,An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ m68k_areg(regs, dstreg) = (srca); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_41f0_0)(uae_u32 opcode) /* LEA.L (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ m68k_areg(regs, dstreg) = (srca); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_41f8_0)(uae_u32 opcode) /* LEA.L (xxx).W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ m68k_areg(regs, dstreg) = (srca); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_41f9_0)(uae_u32 opcode) /* LEA.L (xxx).L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ m68k_areg(regs, dstreg) = (srca); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_41fa_0)(uae_u32 opcode) /* LEA.L (d16,PC),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ m68k_areg(regs, dstreg) = (srca); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_41fb_0)(uae_u32 opcode) /* LEA.L (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ m68k_areg(regs, dstreg) = (srca); +}}}} cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_4200_0)(uae_u32 opcode) /* CLR.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((0) & 0xff); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4210_0)(uae_u32 opcode) /* CLR.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4218_0)(uae_u32 opcode) /* CLR.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4220_0)(uae_u32 opcode) /* CLR.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4228_0)(uae_u32 opcode) /* CLR.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4230_0)(uae_u32 opcode) /* CLR.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4238_0)(uae_u32 opcode) /* CLR.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4239_0)(uae_u32 opcode) /* CLR.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4240_0)(uae_u32 opcode) /* CLR.W Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((0) & 0xffff); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4250_0)(uae_u32 opcode) /* CLR.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4258_0)(uae_u32 opcode) /* CLR.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4260_0)(uae_u32 opcode) /* CLR.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4268_0)(uae_u32 opcode) /* CLR.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4270_0)(uae_u32 opcode) /* CLR.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4278_0)(uae_u32 opcode) /* CLR.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4279_0)(uae_u32 opcode) /* CLR.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4280_0)(uae_u32 opcode) /* CLR.L Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + m68k_dreg(regs, srcreg) = (0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4290_0)(uae_u32 opcode) /* CLR.L (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4298_0)(uae_u32 opcode) /* CLR.L (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(2); + cpuop_end(); +} +#endif + +#ifdef PART_4 +void REGPARAM2 CPUFUNC(op_42a0_0)(uae_u32 opcode) /* CLR.L -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_42a8_0)(uae_u32 opcode) /* CLR.L (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_42b0_0)(uae_u32 opcode) /* CLR.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_42b8_0)(uae_u32 opcode) /* CLR.L (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_42b9_0)(uae_u32 opcode) /* CLR.L (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_42c0_0)(uae_u32 opcode) /* MVSR2.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ MakeSR(); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr & 0xff) & 0xffff); +}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_42d0_0)(uae_u32 opcode) /* MVSR2.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + MakeSR(); + put_word(srca,regs.sr & 0xff); +}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_42d8_0)(uae_u32 opcode) /* MVSR2.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += 2; + MakeSR(); + put_word(srca,regs.sr & 0xff); +}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_42e0_0)(uae_u32 opcode) /* MVSR2.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + MakeSR(); + put_word(srca,regs.sr & 0xff); +}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_42e8_0)(uae_u32 opcode) /* MVSR2.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + MakeSR(); + put_word(srca,regs.sr & 0xff); +}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_42f0_0)(uae_u32 opcode) /* MVSR2.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); + MakeSR(); + put_word(srca,regs.sr & 0xff); +}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_42f8_0)(uae_u32 opcode) /* MVSR2.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + MakeSR(); + put_word(srca,regs.sr & 0xff); +}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_42f9_0)(uae_u32 opcode) /* MVSR2.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); + MakeSR(); + put_word(srca,regs.sr & 0xff); +}}m68k_incpc(6); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_4400_0)(uae_u32 opcode) /* NEG.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4410_0)(uae_u32 opcode) /* NEG.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4418_0)(uae_u32 opcode) /* NEG.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4420_0)(uae_u32 opcode) /* NEG.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4428_0)(uae_u32 opcode) /* NEG.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4430_0)(uae_u32 opcode) /* NEG.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4438_0)(uae_u32 opcode) /* NEG.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4439_0)(uae_u32 opcode) /* NEG.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4440_0)(uae_u32 opcode) /* NEG.W Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4450_0)(uae_u32 opcode) /* NEG.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4458_0)(uae_u32 opcode) /* NEG.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4460_0)(uae_u32 opcode) /* NEG.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4468_0)(uae_u32 opcode) /* NEG.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4470_0)(uae_u32 opcode) /* NEG.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4478_0)(uae_u32 opcode) /* NEG.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4479_0)(uae_u32 opcode) /* NEG.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4480_0)(uae_u32 opcode) /* NEG.L Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, srcreg) = (dst); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4490_0)(uae_u32 opcode) /* NEG.L (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4498_0)(uae_u32 opcode) /* NEG.L (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44a0_0)(uae_u32 opcode) /* NEG.L -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44a8_0)(uae_u32 opcode) /* NEG.L (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44b0_0)(uae_u32 opcode) /* NEG.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44b8_0)(uae_u32 opcode) /* NEG.L (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44b9_0)(uae_u32 opcode) /* NEG.L (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44c0_0)(uae_u32 opcode) /* MV2SR.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44d0_0)(uae_u32 opcode) /* MV2SR.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44d8_0)(uae_u32 opcode) /* MV2SR.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44e0_0)(uae_u32 opcode) /* MV2SR.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44e8_0)(uae_u32 opcode) /* MV2SR.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44f0_0)(uae_u32 opcode) /* MV2SR.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44f8_0)(uae_u32 opcode) /* MV2SR.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44f9_0)(uae_u32 opcode) /* MV2SR.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44fa_0)(uae_u32 opcode) /* MV2SR.B (d16,PC) */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44fb_0)(uae_u32 opcode) /* MV2SR.B (d8,PC,Xn) */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44fc_0)(uae_u32 opcode) /* MV2SR.B #.B */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4600_0)(uae_u32 opcode) /* NOT.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4610_0)(uae_u32 opcode) /* NOT.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4618_0)(uae_u32 opcode) /* NOT.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4620_0)(uae_u32 opcode) /* NOT.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4628_0)(uae_u32 opcode) /* NOT.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4630_0)(uae_u32 opcode) /* NOT.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4638_0)(uae_u32 opcode) /* NOT.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4639_0)(uae_u32 opcode) /* NOT.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4640_0)(uae_u32 opcode) /* NOT.W Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4650_0)(uae_u32 opcode) /* NOT.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4658_0)(uae_u32 opcode) /* NOT.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4660_0)(uae_u32 opcode) /* NOT.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4668_0)(uae_u32 opcode) /* NOT.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4670_0)(uae_u32 opcode) /* NOT.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4678_0)(uae_u32 opcode) /* NOT.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4679_0)(uae_u32 opcode) /* NOT.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4680_0)(uae_u32 opcode) /* NOT.L Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg(regs, srcreg) = (dst); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4690_0)(uae_u32 opcode) /* NOT.L (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4698_0)(uae_u32 opcode) /* NOT.L (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46a0_0)(uae_u32 opcode) /* NOT.L -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46a8_0)(uae_u32 opcode) /* NOT.L (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46b0_0)(uae_u32 opcode) /* NOT.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46b8_0)(uae_u32 opcode) /* NOT.L (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46b9_0)(uae_u32 opcode) /* NOT.L (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46c0_0)(uae_u32 opcode) /* MV2SR.W Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel773; } +{{ uae_s16 src = m68k_dreg(regs, srcreg); + regs.sr = src; + MakeFromSR(); +}}}m68k_incpc(2); +endlabel773: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46d0_0)(uae_u32 opcode) /* MV2SR.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel774; } +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(2); +endlabel774: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46d8_0)(uae_u32 opcode) /* MV2SR.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel775; } +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(2); +endlabel775: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46e0_0)(uae_u32 opcode) /* MV2SR.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel776; } +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(2); +endlabel776: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46e8_0)(uae_u32 opcode) /* MV2SR.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel777; } +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(4); +endlabel777: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46f0_0)(uae_u32 opcode) /* MV2SR.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel778; } +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}}endlabel778: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46f8_0)(uae_u32 opcode) /* MV2SR.W (xxx).W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel779; } +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(4); +endlabel779: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46f9_0)(uae_u32 opcode) /* MV2SR.W (xxx).L */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel780; } +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(6); +endlabel780: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46fa_0)(uae_u32 opcode) /* MV2SR.W (d16,PC) */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel781; } +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(4); +endlabel781: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46fb_0)(uae_u32 opcode) /* MV2SR.W (d8,PC,Xn) */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel782; } +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}}endlabel782: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46fc_0)(uae_u32 opcode) /* MV2SR.W #.W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel783; } +{{ uae_s16 src = get_iword(2); + regs.sr = src; + MakeFromSR(); +}}}m68k_incpc(4); +endlabel783: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4800_0)(uae_u32 opcode) /* NBCD.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4808_0)(uae_u32 opcode) /* LINK.L An,#.L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr olda = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = olda; +{ uae_s32 src = m68k_areg(regs, srcreg); + put_long(olda,src); + m68k_areg(regs, srcreg) = (m68k_areg(regs, 7)); +{ uae_s32 offs = get_ilong(2); + m68k_areg(regs, 7) += offs; +}}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_4810_0)(uae_u32 opcode) /* NBCD.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + put_byte(srca,newv); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4818_0)(uae_u32 opcode) /* NBCD.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + put_byte(srca,newv); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4820_0)(uae_u32 opcode) /* NBCD.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + put_byte(srca,newv); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4828_0)(uae_u32 opcode) /* NBCD.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + put_byte(srca,newv); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4830_0)(uae_u32 opcode) /* NBCD.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + put_byte(srca,newv); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4838_0)(uae_u32 opcode) /* NBCD.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + put_byte(srca,newv); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4839_0)(uae_u32 opcode) /* NBCD.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + put_byte(srca,newv); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4840_0)(uae_u32 opcode) /* SWAP.W Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg(regs, srcreg) = (dst); +}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4848_0)(uae_u32 opcode) /* BKPT.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{m68k_incpc(2); + op_illg(opcode); +} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4850_0)(uae_u32 opcode) /* PEA.L (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long(dsta,srca); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4868_0)(uae_u32 opcode) /* PEA.L (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long(dsta,srca); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4870_0)(uae_u32 opcode) /* PEA.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long(dsta,srca); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4878_0)(uae_u32 opcode) /* PEA.L (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long(dsta,srca); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4879_0)(uae_u32 opcode) /* PEA.L (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long(dsta,srca); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_487a_0)(uae_u32 opcode) /* PEA.L (d16,PC) */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long(dsta,srca); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_487b_0)(uae_u32 opcode) /* PEA.L (d8,PC,Xn) */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long(dsta,srca); +}}}} cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_4880_0)(uae_u32 opcode) /* EXT.W Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u16 dst = (uae_s16)(uae_s8)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); +}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4890_0)(uae_u32 opcode) /* MVMLE.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; } + while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48a0_0)(uae_u32 opcode) /* MVMLE.W #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg) - 0; +{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; + while (amask) { srca -= 2; put_word(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; } + while (dmask) { srca -= 2; put_word(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; } + m68k_areg(regs, dstreg) = srca; +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48a8_0)(uae_u32 opcode) /* MVMLE.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; } + while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48b0_0)(uae_u32 opcode) /* MVMLE.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); +{m68k_incpc(4); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; } + while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; } +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48b8_0)(uae_u32 opcode) /* MVMLE.W #.W,(xxx).W */ +{ + cpuop_begin(); +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; } + while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48b9_0)(uae_u32 opcode) /* MVMLE.W #.W,(xxx).L */ +{ + cpuop_begin(); +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = get_ilong(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; } + while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(8); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_48c0_0)(uae_u32 opcode) /* EXT.L Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg(regs, srcreg) = (dst); +}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48d0_0)(uae_u32 opcode) /* MVMLE.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; } + while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48e0_0)(uae_u32 opcode) /* MVMLE.L #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg) - 0; +{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; + while (amask) { srca -= 4; put_long(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; } + while (dmask) { srca -= 4; put_long(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; } + m68k_areg(regs, dstreg) = srca; +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48e8_0)(uae_u32 opcode) /* MVMLE.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; } + while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48f0_0)(uae_u32 opcode) /* MVMLE.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); +{m68k_incpc(4); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; } + while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; } +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48f8_0)(uae_u32 opcode) /* MVMLE.L #.W,(xxx).W */ +{ + cpuop_begin(); +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; } + while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48f9_0)(uae_u32 opcode) /* MVMLE.L #.W,(xxx).L */ +{ + cpuop_begin(); +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = get_ilong(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; } + while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(8); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_49c0_0)(uae_u32 opcode) /* EXT.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = (uae_s32)(uae_s8)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg(regs, srcreg) = (dst); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a00_0)(uae_u32 opcode) /* TST.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a10_0)(uae_u32 opcode) /* TST.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a18_0)(uae_u32 opcode) /* TST.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a20_0)(uae_u32 opcode) /* TST.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a28_0)(uae_u32 opcode) /* TST.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a30_0)(uae_u32 opcode) /* TST.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a38_0)(uae_u32 opcode) /* TST.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a39_0)(uae_u32 opcode) /* TST.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a3a_0)(uae_u32 opcode) /* TST.B (d16,PC) */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a3b_0)(uae_u32 opcode) /* TST.B (d8,PC,Xn) */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a3c_0)(uae_u32 opcode) /* TST.B #.B */ +{ + cpuop_begin(); +{{ uae_s8 src = get_ibyte(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a40_0)(uae_u32 opcode) /* TST.W Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a48_0)(uae_u32 opcode) /* TST.W An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a50_0)(uae_u32 opcode) /* TST.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a58_0)(uae_u32 opcode) /* TST.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a60_0)(uae_u32 opcode) /* TST.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a68_0)(uae_u32 opcode) /* TST.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a70_0)(uae_u32 opcode) /* TST.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a78_0)(uae_u32 opcode) /* TST.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a79_0)(uae_u32 opcode) /* TST.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a7a_0)(uae_u32 opcode) /* TST.W (d16,PC) */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a7b_0)(uae_u32 opcode) /* TST.W (d8,PC,Xn) */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a7c_0)(uae_u32 opcode) /* TST.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a80_0)(uae_u32 opcode) /* TST.L Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a88_0)(uae_u32 opcode) /* TST.L An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a90_0)(uae_u32 opcode) /* TST.L (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a98_0)(uae_u32 opcode) /* TST.L (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4aa0_0)(uae_u32 opcode) /* TST.L -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4aa8_0)(uae_u32 opcode) /* TST.L (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4ab0_0)(uae_u32 opcode) /* TST.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4ab8_0)(uae_u32 opcode) /* TST.L (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4ab9_0)(uae_u32 opcode) /* TST.L (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4aba_0)(uae_u32 opcode) /* TST.L (d16,PC) */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4abb_0)(uae_u32 opcode) /* TST.L (d8,PC,Xn) */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4abc_0)(uae_u32 opcode) /* TST.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4ac0_0)(uae_u32 opcode) /* TAS.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((src) & 0xff); +}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4ad0_0)(uae_u32 opcode) /* TAS.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4ad8_0)(uae_u32 opcode) /* TAS.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4ae0_0)(uae_u32 opcode) /* TAS.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4ae8_0)(uae_u32 opcode) /* TAS.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4af0_0)(uae_u32 opcode) /* TAS.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4af8_0)(uae_u32 opcode) /* TAS.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4af9_0)(uae_u32 opcode) /* TAS.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c00_0)(uae_u32 opcode) /* MULL.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + m68k_mull(opcode, dst, extra); +}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c10_0)(uae_u32 opcode) /* MULL.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +m68k_incpc(4); + m68k_mull(opcode, dst, extra); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c18_0)(uae_u32 opcode) /* MULL.L #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +m68k_incpc(4); + m68k_mull(opcode, dst, extra); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c20_0)(uae_u32 opcode) /* MULL.L #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +m68k_incpc(4); + m68k_mull(opcode, dst, extra); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c28_0)(uae_u32 opcode) /* MULL.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 dst = get_long(dsta); +m68k_incpc(6); + m68k_mull(opcode, dst, extra); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c30_0)(uae_u32 opcode) /* MULL.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); + m68k_mull(opcode, dst, extra); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c38_0)(uae_u32 opcode) /* MULL.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 dst = get_long(dsta); +m68k_incpc(6); + m68k_mull(opcode, dst, extra); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c39_0)(uae_u32 opcode) /* MULL.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s32 dst = get_long(dsta); +m68k_incpc(8); + m68k_mull(opcode, dst, extra); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c3a_0)(uae_u32 opcode) /* MULL.L #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 dst = get_long(dsta); +m68k_incpc(6); + m68k_mull(opcode, dst, extra); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c3b_0)(uae_u32 opcode) /* MULL.L #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 dst = get_long(dsta); + m68k_mull(opcode, dst, extra); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c3c_0)(uae_u32 opcode) /* MULL.L #.W,#.L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uae_s32 dst = get_ilong(4); +m68k_incpc(8); + m68k_mull(opcode, dst, extra); +}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c40_0)(uae_u32 opcode) /* DIVL.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(2); + m68k_divl(opcode, dst, extra, oldpc); +}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c50_0)(uae_u32 opcode) /* DIVL.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +m68k_incpc(2); + m68k_divl(opcode, dst, extra, oldpc); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c58_0)(uae_u32 opcode) /* DIVL.L #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +m68k_incpc(2); + m68k_divl(opcode, dst, extra, oldpc); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c60_0)(uae_u32 opcode) /* DIVL.L #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +m68k_incpc(2); + m68k_divl(opcode, dst, extra, oldpc); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c68_0)(uae_u32 opcode) /* DIVL.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +m68k_incpc(4); + m68k_divl(opcode, dst, extra, oldpc); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c70_0)(uae_u32 opcode) /* DIVL.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); + m68k_divl(opcode, dst, extra, oldpc); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c78_0)(uae_u32 opcode) /* DIVL.L #.W,(xxx).W */ +{ + cpuop_begin(); +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +m68k_incpc(4); + m68k_divl(opcode, dst, extra, oldpc); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c79_0)(uae_u32 opcode) /* DIVL.L #.W,(xxx).L */ +{ + cpuop_begin(); +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); +m68k_incpc(6); + m68k_divl(opcode, dst, extra, oldpc); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c7a_0)(uae_u32 opcode) /* DIVL.L #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +{ uaecptr dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +m68k_incpc(4); + m68k_divl(opcode, dst, extra, oldpc); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c7b_0)(uae_u32 opcode) /* DIVL.L #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 dst = get_long(dsta); + m68k_divl(opcode, dst, extra, oldpc); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4c7c_0)(uae_u32 opcode) /* DIVL.L #.W,#.L */ +{ + cpuop_begin(); +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +{ uae_s32 dst = get_ilong(2); +m68k_incpc(6); + m68k_divl(opcode, dst, extra, oldpc); +}}}} cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4c90_0)(uae_u32 opcode) /* MVMEL.W #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4c98_0)(uae_u32 opcode) /* MVMEL.W #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } + m68k_areg(regs, dstreg) = srca; +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4ca8_0)(uae_u32 opcode) /* MVMEL.W #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cb0_0)(uae_u32 opcode) /* MVMEL.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{m68k_incpc(4); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cb8_0)(uae_u32 opcode) /* MVMEL.W #.W,(xxx).W */ +{ + cpuop_begin(); +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cb9_0)(uae_u32 opcode) /* MVMEL.W #.W,(xxx).L */ +{ + cpuop_begin(); +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = get_ilong(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(8); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cba_0)(uae_u32 opcode) /* MVMEL.W #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_getpc () + 4; + srca += (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cbb_0)(uae_u32 opcode) /* MVMEL.W #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cd0_0)(uae_u32 opcode) /* MVMEL.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cd8_0)(uae_u32 opcode) /* MVMEL.L #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } + m68k_areg(regs, dstreg) = srca; +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4ce8_0)(uae_u32 opcode) /* MVMEL.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cf0_0)(uae_u32 opcode) /* MVMEL.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{m68k_incpc(4); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cf8_0)(uae_u32 opcode) /* MVMEL.L #.W,(xxx).W */ +{ + cpuop_begin(); +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cf9_0)(uae_u32 opcode) /* MVMEL.L #.W,(xxx).L */ +{ + cpuop_begin(); +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = get_ilong(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(8); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cfa_0)(uae_u32 opcode) /* MVMEL.L #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_getpc () + 4; + srca += (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cfb_0)(uae_u32 opcode) /* MVMEL.L #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e40_0)(uae_u32 opcode) /* TRAP.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 15); +#else + uae_u32 srcreg = (opcode & 15); +#endif +{{ uae_u32 src = srcreg; +m68k_incpc(2); + Exception(src+32,0); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e50_0)(uae_u32 opcode) /* LINK.W An,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr olda = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = olda; +{ uae_s32 src = m68k_areg(regs, srcreg); + put_long(olda,src); + m68k_areg(regs, srcreg) = (m68k_areg(regs, 7)); +{ uae_s16 offs = get_iword(2); + m68k_areg(regs, 7) += offs; +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e58_0)(uae_u32 opcode) /* UNLK.L An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); + m68k_areg(regs, 7) = src; +{ uaecptr olda = m68k_areg(regs, 7); +{ uae_s32 old = get_long(olda); + m68k_areg(regs, 7) += 4; + m68k_areg(regs, srcreg) = (old); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e60_0)(uae_u32 opcode) /* MVR2USP.L An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel901; } +{{ uae_s32 src = m68k_areg(regs, srcreg); + regs.usp = src; +}}}m68k_incpc(2); +endlabel901: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e68_0)(uae_u32 opcode) /* MVUSP2R.L An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel902; } +{{ m68k_areg(regs, srcreg) = (regs.usp); +}}}m68k_incpc(2); +endlabel902: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e70_0)(uae_u32 opcode) /* RESET.L */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel903; } +{}}m68k_incpc(2); +endlabel903: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e71_0)(uae_u32 opcode) /* NOP.L */ +{ + cpuop_begin(); +{}m68k_incpc(2); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_4e72_0)(uae_u32 opcode) /* STOP.L #.W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel905; } +{{ uae_s16 src = get_iword(2); + regs.sr = src; + MakeFromSR(); + m68k_setstopped(1); +}}}m68k_incpc(4); +endlabel905: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4e73_0)(uae_u32 opcode) /* RTE.L */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel906; } +{ uae_u16 newsr; uae_u32 newpc; for (;;) { +{ uaecptr sra = m68k_areg(regs, 7); +{ uae_s16 sr = get_word(sra); + m68k_areg(regs, 7) += 2; +{ uaecptr pca = m68k_areg(regs, 7); +{ uae_s32 pc = get_long(pca); + m68k_areg(regs, 7) += 4; +{ uaecptr formata = m68k_areg(regs, 7); +{ uae_s16 format = get_word(formata); + m68k_areg(regs, 7) += 2; + newsr = sr; newpc = pc; + if ((format & 0xF000) == 0x0000) { break; } + else if ((format & 0xF000) == 0x1000) { ; } + else if ((format & 0xF000) == 0x2000) { m68k_areg(regs, 7) += 4; break; } + else if ((format & 0xF000) == 0x3000) { m68k_areg(regs, 7) += 4; break; } + else if ((format & 0xF000) == 0x7000) { m68k_areg(regs, 7) += 52; break; } + else if ((format & 0xF000) == 0x8000) { m68k_areg(regs, 7) += 50; break; } + else if ((format & 0xF000) == 0x9000) { m68k_areg(regs, 7) += 12; break; } + else if ((format & 0xF000) == 0xa000) { m68k_areg(regs, 7) += 24; break; } + else if ((format & 0xF000) == 0xb000) { m68k_areg(regs, 7) += 84; break; } + else { Exception(14,0); goto endlabel906; } + regs.sr = newsr; MakeFromSR(); +} +}}}}}} regs.sr = newsr; MakeFromSR(); + m68k_setpc_rte(newpc); +}}endlabel906: ; + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e74_0)(uae_u32 opcode) /* RTD.L #.W */ +{ + cpuop_begin(); +{{ uaecptr pca = m68k_areg(regs, 7); +{ uae_s32 pc = get_long(pca); + m68k_areg(regs, 7) += 4; +{ uae_s16 offs = get_iword(2); + m68k_areg(regs, 7) += offs; + m68k_setpc_rte(pc); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e75_0)(uae_u32 opcode) /* RTS.L */ +{ + cpuop_begin(); +{ m68k_do_rts(); +} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e76_0)(uae_u32 opcode) /* TRAPV.L */ +{ + cpuop_begin(); +{m68k_incpc(2); + if (GET_VFLG) { Exception(7,m68k_getpc()); goto endlabel909; } +}endlabel909: ; + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_4e77_0)(uae_u32 opcode) /* RTR.L */ +{ + cpuop_begin(); +{ MakeSR(); +{ uaecptr sra = m68k_areg(regs, 7); +{ uae_s16 sr = get_word(sra); + m68k_areg(regs, 7) += 2; +{ uaecptr pca = m68k_areg(regs, 7); +{ uae_s32 pc = get_long(pca); + m68k_areg(regs, 7) += 4; + regs.sr &= 0xFF00; sr &= 0xFF; + regs.sr |= sr; m68k_setpc(pc); + MakeFromSR(); +}}}}} cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e7a_0)(uae_u32 opcode) /* MOVEC2.L #.W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel911; } +{{ uae_s16 src = get_iword(2); +{ int regno = (src >> 12) & 15; + uae_u32 *regp = regs.regs + regno; + if (! m68k_movec2(src & 0xFFF, regp)) goto endlabel911; +}}}}m68k_incpc(4); +endlabel911: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e7b_0)(uae_u32 opcode) /* MOVE2C.L #.W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel912; } +{{ uae_s16 src = get_iword(2); +{ int regno = (src >> 12) & 15; + uae_u32 *regp = regs.regs + regno; + if (! m68k_move2c(src & 0xFFF, regp)) goto endlabel912; +}}}}m68k_incpc(4); +endlabel912: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4e90_0)(uae_u32 opcode) /* JSR.L (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_do_jsr(m68k_getpc() + 2, srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4ea8_0)(uae_u32 opcode) /* JSR.L (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + m68k_do_jsr(m68k_getpc() + 4, srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4eb0_0)(uae_u32 opcode) /* JSR.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); + m68k_do_jsr(m68k_getpc() + 0, srca); +}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4eb8_0)(uae_u32 opcode) /* JSR.L (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + m68k_do_jsr(m68k_getpc() + 4, srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4eb9_0)(uae_u32 opcode) /* JSR.L (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); + m68k_do_jsr(m68k_getpc() + 6, srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4eba_0)(uae_u32 opcode) /* JSR.L (d16,PC) */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); + m68k_do_jsr(m68k_getpc() + 4, srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4ebb_0)(uae_u32 opcode) /* JSR.L (d8,PC,Xn) */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); + m68k_do_jsr(m68k_getpc() + 0, srca); +}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4ed0_0)(uae_u32 opcode) /* JMP.L (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_setpc(srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4ee8_0)(uae_u32 opcode) /* JMP.L (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + m68k_setpc(srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4ef0_0)(uae_u32 opcode) /* JMP.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); + m68k_setpc(srca); +}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4ef8_0)(uae_u32 opcode) /* JMP.L (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + m68k_setpc(srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4ef9_0)(uae_u32 opcode) /* JMP.L (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); + m68k_setpc(srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4efa_0)(uae_u32 opcode) /* JMP.L (d16,PC) */ +{ + cpuop_begin(); +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); + m68k_setpc(srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4efb_0)(uae_u32 opcode) /* JMP.L (d8,PC,Xn) */ +{ + cpuop_begin(); +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); + m68k_setpc(srca); +}}} cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_5000_0)(uae_u32 opcode) /* ADD.B #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5010_0)(uae_u32 opcode) /* ADD.B #,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5018_0)(uae_u32 opcode) /* ADD.B #,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5020_0)(uae_u32 opcode) /* ADD.B #,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5028_0)(uae_u32 opcode) /* ADD.B #,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5030_0)(uae_u32 opcode) /* ADD.B #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5038_0)(uae_u32 opcode) /* ADD.B #,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5039_0)(uae_u32 opcode) /* ADD.B #,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +#endif + +#ifdef PART_5 +void REGPARAM2 CPUFUNC(op_5040_0)(uae_u32 opcode) /* ADD.W #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5048_0)(uae_u32 opcode) /* ADDA.W #,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_5050_0)(uae_u32 opcode) /* ADD.W #,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5058_0)(uae_u32 opcode) /* ADD.W #,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5060_0)(uae_u32 opcode) /* ADD.W #,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5068_0)(uae_u32 opcode) /* ADD.W #,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5070_0)(uae_u32 opcode) /* ADD.W #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5078_0)(uae_u32 opcode) /* ADD.W #,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5079_0)(uae_u32 opcode) /* ADD.W #,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5080_0)(uae_u32 opcode) /* ADD.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5088_0)(uae_u32 opcode) /* ADDA.L #,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_5090_0)(uae_u32 opcode) /* ADD.L #,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5098_0)(uae_u32 opcode) /* ADD.L #,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_50a0_0)(uae_u32 opcode) /* ADD.L #,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_50a8_0)(uae_u32 opcode) /* ADD.L #,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_50b0_0)(uae_u32 opcode) /* ADD.L #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_50b8_0)(uae_u32 opcode) /* ADD.L #,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_50b9_0)(uae_u32 opcode) /* ADD.L #,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50c0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(0) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50c8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(0)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel954: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50d0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50d8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50e0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50e8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50f0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50f8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50f9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50fa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(0)) { Exception(7,m68k_getpc()); goto endlabel962; } +}}m68k_incpc(4); +endlabel962: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50fb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(0)) { Exception(7,m68k_getpc()); goto endlabel963; } +}}m68k_incpc(6); +endlabel963: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50fc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(0)) { Exception(7,m68k_getpc()); goto endlabel964; } +}m68k_incpc(2); +endlabel964: ; + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_5100_0)(uae_u32 opcode) /* SUB.B #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5110_0)(uae_u32 opcode) /* SUB.B #,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5118_0)(uae_u32 opcode) /* SUB.B #,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5120_0)(uae_u32 opcode) /* SUB.B #,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5128_0)(uae_u32 opcode) /* SUB.B #,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5130_0)(uae_u32 opcode) /* SUB.B #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5138_0)(uae_u32 opcode) /* SUB.B #,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5139_0)(uae_u32 opcode) /* SUB.B #,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5140_0)(uae_u32 opcode) /* SUB.W #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5148_0)(uae_u32 opcode) /* SUBA.W #,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_5150_0)(uae_u32 opcode) /* SUB.W #,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5158_0)(uae_u32 opcode) /* SUB.W #,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5160_0)(uae_u32 opcode) /* SUB.W #,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5168_0)(uae_u32 opcode) /* SUB.W #,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5170_0)(uae_u32 opcode) /* SUB.W #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5178_0)(uae_u32 opcode) /* SUB.W #,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5179_0)(uae_u32 opcode) /* SUB.W #,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5180_0)(uae_u32 opcode) /* SUB.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5188_0)(uae_u32 opcode) /* SUBA.L #,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_5190_0)(uae_u32 opcode) /* SUB.L #,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5198_0)(uae_u32 opcode) /* SUB.L #,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_51a0_0)(uae_u32 opcode) /* SUB.L #,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_51a8_0)(uae_u32 opcode) /* SUB.L #,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_51b0_0)(uae_u32 opcode) /* SUB.L #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_51b8_0)(uae_u32 opcode) /* SUB.L #,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_51b9_0)(uae_u32 opcode) /* SUB.L #,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51c0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(1) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51c8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(1)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel992: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51d0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51d8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51e0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51e8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51f0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51f8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51f9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51fa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(1)) { Exception(7,m68k_getpc()); goto endlabel1000; } +}}m68k_incpc(4); +endlabel1000: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51fb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(1)) { Exception(7,m68k_getpc()); goto endlabel1001; } +}}m68k_incpc(6); +endlabel1001: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51fc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(1)) { Exception(7,m68k_getpc()); goto endlabel1002; } +}m68k_incpc(2); +endlabel1002: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52c0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(2) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52c8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(2)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1004: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52d0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52d8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52e0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52e8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52f0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52f8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52f9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52fa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(2)) { Exception(7,m68k_getpc()); goto endlabel1012; } +}}m68k_incpc(4); +endlabel1012: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52fb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(2)) { Exception(7,m68k_getpc()); goto endlabel1013; } +}}m68k_incpc(6); +endlabel1013: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52fc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(2)) { Exception(7,m68k_getpc()); goto endlabel1014; } +}m68k_incpc(2); +endlabel1014: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53c0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(3) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53c8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(3)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1016: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53d0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53d8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53e0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53e8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53f0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53f8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53f9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53fa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(3)) { Exception(7,m68k_getpc()); goto endlabel1024; } +}}m68k_incpc(4); +endlabel1024: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53fb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(3)) { Exception(7,m68k_getpc()); goto endlabel1025; } +}}m68k_incpc(6); +endlabel1025: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53fc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(3)) { Exception(7,m68k_getpc()); goto endlabel1026; } +}m68k_incpc(2); +endlabel1026: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54c0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(4) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54c8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(4)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1028: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54d0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54d8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54e0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54e8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54f0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54f8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54f9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54fa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(4)) { Exception(7,m68k_getpc()); goto endlabel1036; } +}}m68k_incpc(4); +endlabel1036: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54fb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(4)) { Exception(7,m68k_getpc()); goto endlabel1037; } +}}m68k_incpc(6); +endlabel1037: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54fc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(4)) { Exception(7,m68k_getpc()); goto endlabel1038; } +}m68k_incpc(2); +endlabel1038: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55c0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(5) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55c8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(5)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1040: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55d0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55d8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55e0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55e8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55f0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55f8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55f9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55fa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(5)) { Exception(7,m68k_getpc()); goto endlabel1048; } +}}m68k_incpc(4); +endlabel1048: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55fb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(5)) { Exception(7,m68k_getpc()); goto endlabel1049; } +}}m68k_incpc(6); +endlabel1049: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55fc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(5)) { Exception(7,m68k_getpc()); goto endlabel1050; } +}m68k_incpc(2); +endlabel1050: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56c0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(6) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56c8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(6)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1052: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56d0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56d8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56e0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56e8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56f0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56f8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56f9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56fa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(6)) { Exception(7,m68k_getpc()); goto endlabel1060; } +}}m68k_incpc(4); +endlabel1060: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56fb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(6)) { Exception(7,m68k_getpc()); goto endlabel1061; } +}}m68k_incpc(6); +endlabel1061: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56fc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(6)) { Exception(7,m68k_getpc()); goto endlabel1062; } +}m68k_incpc(2); +endlabel1062: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57c0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(7) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57c8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(7)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1064: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57d0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57d8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57e0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57e8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57f0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57f8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57f9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57fa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(7)) { Exception(7,m68k_getpc()); goto endlabel1072; } +}}m68k_incpc(4); +endlabel1072: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57fb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(7)) { Exception(7,m68k_getpc()); goto endlabel1073; } +}}m68k_incpc(6); +endlabel1073: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57fc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(7)) { Exception(7,m68k_getpc()); goto endlabel1074; } +}m68k_incpc(2); +endlabel1074: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58c0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(8) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58c8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(8)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1076: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58d0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58d8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58e0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58e8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58f0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58f8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58f9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58fa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(8)) { Exception(7,m68k_getpc()); goto endlabel1084; } +}}m68k_incpc(4); +endlabel1084: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58fb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(8)) { Exception(7,m68k_getpc()); goto endlabel1085; } +}}m68k_incpc(6); +endlabel1085: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58fc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(8)) { Exception(7,m68k_getpc()); goto endlabel1086; } +}m68k_incpc(2); +endlabel1086: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59c0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(9) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59c8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(9)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1088: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59d0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59d8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59e0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59e8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59f0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59f8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59f9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59fa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(9)) { Exception(7,m68k_getpc()); goto endlabel1096; } +}}m68k_incpc(4); +endlabel1096: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59fb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(9)) { Exception(7,m68k_getpc()); goto endlabel1097; } +}}m68k_incpc(6); +endlabel1097: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59fc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(9)) { Exception(7,m68k_getpc()); goto endlabel1098; } +}m68k_incpc(2); +endlabel1098: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ac0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(10) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ac8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(10)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1100: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ad0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ad8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ae0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ae8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5af0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5af8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5af9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5afa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(10)) { Exception(7,m68k_getpc()); goto endlabel1108; } +}}m68k_incpc(4); +endlabel1108: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5afb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(10)) { Exception(7,m68k_getpc()); goto endlabel1109; } +}}m68k_incpc(6); +endlabel1109: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5afc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(10)) { Exception(7,m68k_getpc()); goto endlabel1110; } +}m68k_incpc(2); +endlabel1110: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5bc0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(11) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5bc8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(11)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1112: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5bd0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5bd8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5be0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5be8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5bf0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5bf8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5bf9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5bfa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(11)) { Exception(7,m68k_getpc()); goto endlabel1120; } +}}m68k_incpc(4); +endlabel1120: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5bfb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(11)) { Exception(7,m68k_getpc()); goto endlabel1121; } +}}m68k_incpc(6); +endlabel1121: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5bfc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(11)) { Exception(7,m68k_getpc()); goto endlabel1122; } +}m68k_incpc(2); +endlabel1122: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5cc0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(12) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5cc8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(12)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1124: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5cd0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5cd8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ce0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ce8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5cf0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5cf8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5cf9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5cfa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(12)) { Exception(7,m68k_getpc()); goto endlabel1132; } +}}m68k_incpc(4); +endlabel1132: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5cfb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(12)) { Exception(7,m68k_getpc()); goto endlabel1133; } +}}m68k_incpc(6); +endlabel1133: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5cfc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(12)) { Exception(7,m68k_getpc()); goto endlabel1134; } +}m68k_incpc(2); +endlabel1134: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5dc0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(13) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5dc8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(13)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1136: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5dd0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5dd8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5de0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5de8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5df0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5df8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5df9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5dfa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(13)) { Exception(7,m68k_getpc()); goto endlabel1144; } +}}m68k_incpc(4); +endlabel1144: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5dfb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(13)) { Exception(7,m68k_getpc()); goto endlabel1145; } +}}m68k_incpc(6); +endlabel1145: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5dfc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(13)) { Exception(7,m68k_getpc()); goto endlabel1146; } +}m68k_incpc(2); +endlabel1146: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ec0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(14) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ec8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(14)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1148: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ed0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ed8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ee0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ee8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ef0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ef8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ef9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5efa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(14)) { Exception(7,m68k_getpc()); goto endlabel1156; } +}}m68k_incpc(4); +endlabel1156: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5efb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(14)) { Exception(7,m68k_getpc()); goto endlabel1157; } +}}m68k_incpc(6); +endlabel1157: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5efc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(14)) { Exception(7,m68k_getpc()); goto endlabel1158; } +}m68k_incpc(2); +endlabel1158: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5fc0_0)(uae_u32 opcode) /* Scc.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{{ int val = cctrue(15) ? 0xff : 0; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5fc8_0)(uae_u32 opcode) /* DBcc.W Dn,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(15)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +return; + } + } +}}}m68k_incpc(4); +endlabel1160: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5fd0_0)(uae_u32 opcode) /* Scc.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5fd8_0)(uae_u32 opcode) /* Scc.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5fe0_0)(uae_u32 opcode) /* Scc.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5fe8_0)(uae_u32 opcode) /* Scc.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ff0_0)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ff8_0)(uae_u32 opcode) /* Scc.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ff9_0)(uae_u32 opcode) /* Scc.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#endif + +#ifdef PART_6 +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ffa_0)(uae_u32 opcode) /* TRAPcc.L #.W */ +{ + cpuop_begin(); +{{ uae_s16 dummy = get_iword(2); + if (cctrue(15)) { Exception(7,m68k_getpc()); goto endlabel1168; } +}}m68k_incpc(4); +endlabel1168: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ffb_0)(uae_u32 opcode) /* TRAPcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 dummy = get_ilong(2); + if (cctrue(15)) { Exception(7,m68k_getpc()); goto endlabel1169; } +}}m68k_incpc(6); +endlabel1169: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ffc_0)(uae_u32 opcode) /* TRAPcc.L */ +{ + cpuop_begin(); +{ if (cctrue(15)) { Exception(7,m68k_getpc()); goto endlabel1170; } +}m68k_incpc(2); +endlabel1170: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6000_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(0)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1171: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6001_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(0)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1172: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_60ff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(0)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1173: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6100_0)(uae_u32 opcode) /* BSR.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + uae_s32 s = (uae_s32)src + 2; + m68k_do_bsr(m68k_getpc() + 4, s); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6101_0)(uae_u32 opcode) /* BSR.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + uae_s32 s = (uae_s32)src + 2; + m68k_do_bsr(m68k_getpc() + 2, s); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_61ff_0)(uae_u32 opcode) /* BSR.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + uae_s32 s = (uae_s32)src + 2; + m68k_do_bsr(m68k_getpc() + 6, s); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6200_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(2)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1177: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6201_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(2)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1178: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_62ff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(2)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1179: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6300_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(3)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1180: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6301_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(3)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1181: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_63ff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(3)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1182: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6400_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(4)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1183: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6401_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(4)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1184: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_64ff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(4)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1185: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6500_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(5)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1186: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6501_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(5)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1187: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_65ff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(5)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1188: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6600_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(6)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1189: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6601_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(6)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1190: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_66ff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(6)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1191: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6700_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(7)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1192: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6701_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(7)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1193: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_67ff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(7)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1194: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6800_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(8)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1195: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6801_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(8)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1196: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_68ff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(8)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1197: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6900_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(9)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1198: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6901_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(9)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1199: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_69ff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(9)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1200: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6a00_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(10)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1201: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6a01_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(10)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1202: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6aff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(10)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1203: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6b00_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(11)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1204: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6b01_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(11)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1205: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6bff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(11)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1206: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6c00_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(12)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1207: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6c01_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(12)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1208: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6cff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(12)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1209: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6d00_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(13)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1210: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6d01_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(13)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1211: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6dff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(13)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1212: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6e00_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(14)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1213: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6e01_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(14)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1214: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6eff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(14)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1215: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6f00_0)(uae_u32 opcode) /* Bcc.W #.W */ +{ + cpuop_begin(); +{{ uae_s16 src = get_iword(2); + if (!cctrue(15)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(4); +endlabel1216: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6f01_0)(uae_u32 opcode) /* Bcc.B # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +{{ uae_u32 src = srcreg; + if (!cctrue(15)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(2); +endlabel1217: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6fff_0)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{{ uae_s32 src = get_ilong(2); + if (!cctrue(15)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel1218: ; + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_7000_0)(uae_u32 opcode) /* MOVE.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 8) & 255); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_u32 src = srcreg; +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_7100_0)(uae_u32 opcode) /* EMULOP_RETURN.L */ +{ + cpuop_begin(); +{ m68k_emulop_return(); +} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_7101_0)(uae_u32 opcode) /* EMULOP.L # */ +{ + cpuop_begin(); +{ +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + m68k_emulop(opcode); +}m68k_incpc(2); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_8000_0)(uae_u32 opcode) /* OR.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8010_0)(uae_u32 opcode) /* OR.B (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8018_0)(uae_u32 opcode) /* OR.B (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8020_0)(uae_u32 opcode) /* OR.B -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8028_0)(uae_u32 opcode) /* OR.B (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8030_0)(uae_u32 opcode) /* OR.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8038_0)(uae_u32 opcode) /* OR.B (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8039_0)(uae_u32 opcode) /* OR.B (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_803a_0)(uae_u32 opcode) /* OR.B (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_803b_0)(uae_u32 opcode) /* OR.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_803c_0)(uae_u32 opcode) /* OR.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8040_0)(uae_u32 opcode) /* OR.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8050_0)(uae_u32 opcode) /* OR.W (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8058_0)(uae_u32 opcode) /* OR.W (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8060_0)(uae_u32 opcode) /* OR.W -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8068_0)(uae_u32 opcode) /* OR.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8070_0)(uae_u32 opcode) /* OR.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8078_0)(uae_u32 opcode) /* OR.W (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8079_0)(uae_u32 opcode) /* OR.W (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_807a_0)(uae_u32 opcode) /* OR.W (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_807b_0)(uae_u32 opcode) /* OR.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_807c_0)(uae_u32 opcode) /* OR.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8080_0)(uae_u32 opcode) /* OR.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8090_0)(uae_u32 opcode) /* OR.L (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8098_0)(uae_u32 opcode) /* OR.L (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80a0_0)(uae_u32 opcode) /* OR.L -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80a8_0)(uae_u32 opcode) /* OR.L (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80b0_0)(uae_u32 opcode) /* OR.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80b8_0)(uae_u32 opcode) /* OR.L (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80b9_0)(uae_u32 opcode) /* OR.L (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80ba_0)(uae_u32 opcode) /* OR.L (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80bb_0)(uae_u32 opcode) /* OR.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80bc_0)(uae_u32 opcode) /* OR.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80c0_0)(uae_u32 opcode) /* DIVU.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(2); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1255; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}endlabel1255: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80d0_0)(uae_u32 opcode) /* DIVU.W (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(2); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1256; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1256: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80d8_0)(uae_u32 opcode) /* DIVU.W (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(2); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1257; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1257: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80e0_0)(uae_u32 opcode) /* DIVU.W -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(2); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1258; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1258: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80e8_0)(uae_u32 opcode) /* DIVU.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1259; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1259: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80f0_0)(uae_u32 opcode) /* DIVU.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1260; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}}endlabel1260: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80f8_0)(uae_u32 opcode) /* DIVU.W (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1261; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1261: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80f9_0)(uae_u32 opcode) /* DIVU.W (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(6); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1262; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1262: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80fa_0)(uae_u32 opcode) /* DIVU.W (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1263; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1263: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80fb_0)(uae_u32 opcode) /* DIVU.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1264; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}}endlabel1264: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80fc_0)(uae_u32 opcode) /* DIVU.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1265; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}endlabel1265: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8100_0)(uae_u32 opcode) /* SBCD.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv, 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 & (((uae_s8)(newv)) == 0)); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8108_0)(uae_u32 opcode) /* SBCD.B -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 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 & (((uae_s8)(newv)) == 0)); + put_byte(dsta,newv); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8110_0)(uae_u32 opcode) /* OR.B Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8118_0)(uae_u32 opcode) /* OR.B Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8120_0)(uae_u32 opcode) /* OR.B Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8128_0)(uae_u32 opcode) /* OR.B Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8130_0)(uae_u32 opcode) /* OR.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8138_0)(uae_u32 opcode) /* OR.B Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8139_0)(uae_u32 opcode) /* OR.B Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_8140_0)(uae_u32 opcode) /* PACK.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uae_u16 val = m68k_dreg(regs, srcreg) + get_iword(2); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & 0xffffff00) | ((val >> 4) & 0xf0) | (val & 0xf); +}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_8148_0)(uae_u32 opcode) /* PACK.L -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uae_u16 val; + m68k_areg(regs, srcreg) -= areg_byteinc[srcreg]; + val = (uae_u16)get_byte(m68k_areg(regs, srcreg)); + m68k_areg(regs, srcreg) -= areg_byteinc[srcreg]; + val = (val | ((uae_u16)get_byte(m68k_areg(regs, srcreg)) << 8)) + get_iword(2); + m68k_areg(regs, dstreg) -= areg_byteinc[dstreg]; + put_byte(m68k_areg(regs, dstreg),((val >> 4) & 0xf0) | (val & 0xf)); +}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_8150_0)(uae_u32 opcode) /* OR.W Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8158_0)(uae_u32 opcode) /* OR.W Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8160_0)(uae_u32 opcode) /* OR.W Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8168_0)(uae_u32 opcode) /* OR.W Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8170_0)(uae_u32 opcode) /* OR.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8178_0)(uae_u32 opcode) /* OR.W Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8179_0)(uae_u32 opcode) /* OR.W Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_8180_0)(uae_u32 opcode) /* UNPK.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uae_u16 val = m68k_dreg(regs, srcreg); + val = (((val << 4) & 0xf00) | (val & 0xf)) + get_iword(2); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & 0xffff0000) | (val & 0xffff); +}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_8188_0)(uae_u32 opcode) /* UNPK.L -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uae_u16 val; + m68k_areg(regs, srcreg) -= areg_byteinc[srcreg]; + val = (uae_u16)get_byte(m68k_areg(regs, srcreg)); + val = (((val << 4) & 0xf00) | (val & 0xf)) + get_iword(2); + m68k_areg(regs, dstreg) -= areg_byteinc[dstreg]; + put_byte(m68k_areg(regs, dstreg),val); + m68k_areg(regs, dstreg) -= areg_byteinc[dstreg]; + put_byte(m68k_areg(regs, dstreg),val >> 8); +}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_8190_0)(uae_u32 opcode) /* OR.L Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8198_0)(uae_u32 opcode) /* OR.L Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81a0_0)(uae_u32 opcode) /* OR.L Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81a8_0)(uae_u32 opcode) /* OR.L Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81b0_0)(uae_u32 opcode) /* OR.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81b8_0)(uae_u32 opcode) /* OR.L Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81b9_0)(uae_u32 opcode) /* OR.L Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81c0_0)(uae_u32 opcode) /* DIVS.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(2); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1293; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}endlabel1293: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81d0_0)(uae_u32 opcode) /* DIVS.W (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(2); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1294; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1294: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81d8_0)(uae_u32 opcode) /* DIVS.W (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(2); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1295; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1295: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81e0_0)(uae_u32 opcode) /* DIVS.W -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(2); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1296; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1296: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81e8_0)(uae_u32 opcode) /* DIVS.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1297; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1297: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81f0_0)(uae_u32 opcode) /* DIVS.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1298; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}}endlabel1298: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81f8_0)(uae_u32 opcode) /* DIVS.W (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1299; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1299: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81f9_0)(uae_u32 opcode) /* DIVS.W (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(6); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1300; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1300: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81fa_0)(uae_u32 opcode) /* DIVS.W (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1301; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel1301: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81fb_0)(uae_u32 opcode) /* DIVS.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1302; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}}endlabel1302: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81fc_0)(uae_u32 opcode) /* DIVS.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1303; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}endlabel1303: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9000_0)(uae_u32 opcode) /* SUB.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9010_0)(uae_u32 opcode) /* SUB.B (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9018_0)(uae_u32 opcode) /* SUB.B (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9020_0)(uae_u32 opcode) /* SUB.B -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9028_0)(uae_u32 opcode) /* SUB.B (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9030_0)(uae_u32 opcode) /* SUB.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9038_0)(uae_u32 opcode) /* SUB.B (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9039_0)(uae_u32 opcode) /* SUB.B (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_903a_0)(uae_u32 opcode) /* SUB.B (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_903b_0)(uae_u32 opcode) /* SUB.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_903c_0)(uae_u32 opcode) /* SUB.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9040_0)(uae_u32 opcode) /* SUB.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9048_0)(uae_u32 opcode) /* SUB.W An,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9050_0)(uae_u32 opcode) /* SUB.W (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9058_0)(uae_u32 opcode) /* SUB.W (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9060_0)(uae_u32 opcode) /* SUB.W -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9068_0)(uae_u32 opcode) /* SUB.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9070_0)(uae_u32 opcode) /* SUB.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9078_0)(uae_u32 opcode) /* SUB.W (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9079_0)(uae_u32 opcode) /* SUB.W (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_907a_0)(uae_u32 opcode) /* SUB.W (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_907b_0)(uae_u32 opcode) /* SUB.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_907c_0)(uae_u32 opcode) /* SUB.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9080_0)(uae_u32 opcode) /* SUB.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9088_0)(uae_u32 opcode) /* SUB.L An,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9090_0)(uae_u32 opcode) /* SUB.L (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9098_0)(uae_u32 opcode) /* SUB.L (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_90a0_0)(uae_u32 opcode) /* SUB.L -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_90a8_0)(uae_u32 opcode) /* SUB.L (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_90b0_0)(uae_u32 opcode) /* SUB.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_90b8_0)(uae_u32 opcode) /* SUB.L (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_90b9_0)(uae_u32 opcode) /* SUB.L (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_90ba_0)(uae_u32 opcode) /* SUB.L (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_90bb_0)(uae_u32 opcode) /* SUB.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_90bc_0)(uae_u32 opcode) /* SUB.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90c0_0)(uae_u32 opcode) /* SUBA.W Dn,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90c8_0)(uae_u32 opcode) /* SUBA.W An,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90d0_0)(uae_u32 opcode) /* SUBA.W (An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90d8_0)(uae_u32 opcode) /* SUBA.W (An)+,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90e0_0)(uae_u32 opcode) /* SUBA.W -(An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90e8_0)(uae_u32 opcode) /* SUBA.W (d16,An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90f0_0)(uae_u32 opcode) /* SUBA.W (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90f8_0)(uae_u32 opcode) /* SUBA.W (xxx).W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90f9_0)(uae_u32 opcode) /* SUBA.W (xxx).L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90fa_0)(uae_u32 opcode) /* SUBA.W (d16,PC),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90fb_0)(uae_u32 opcode) /* SUBA.W (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90fc_0)(uae_u32 opcode) /* SUBA.W #.W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_9100_0)(uae_u32 opcode) /* SUBX.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9108_0)(uae_u32 opcode) /* SUBX.B -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9110_0)(uae_u32 opcode) /* SUB.B Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9118_0)(uae_u32 opcode) /* SUB.B Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9120_0)(uae_u32 opcode) /* SUB.B Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9128_0)(uae_u32 opcode) /* SUB.B Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9130_0)(uae_u32 opcode) /* SUB.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9138_0)(uae_u32 opcode) /* SUB.B Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9139_0)(uae_u32 opcode) /* SUB.B Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9140_0)(uae_u32 opcode) /* SUBX.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9148_0)(uae_u32 opcode) /* SUBX.W -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9150_0)(uae_u32 opcode) /* SUB.W Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9158_0)(uae_u32 opcode) /* SUB.W Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9160_0)(uae_u32 opcode) /* SUB.W Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9168_0)(uae_u32 opcode) /* SUB.W Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9170_0)(uae_u32 opcode) /* SUB.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9178_0)(uae_u32 opcode) /* SUB.W Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9179_0)(uae_u32 opcode) /* SUB.W Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9180_0)(uae_u32 opcode) /* SUBX.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9188_0)(uae_u32 opcode) /* SUBX.L -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9190_0)(uae_u32 opcode) /* SUB.L Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9198_0)(uae_u32 opcode) /* SUB.L Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_91a0_0)(uae_u32 opcode) /* SUB.L Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_91a8_0)(uae_u32 opcode) /* SUB.L Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_91b0_0)(uae_u32 opcode) /* SUB.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_91b8_0)(uae_u32 opcode) /* SUB.L Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_91b9_0)(uae_u32 opcode) /* SUB.L Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91c0_0)(uae_u32 opcode) /* SUBA.L Dn,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91c8_0)(uae_u32 opcode) /* SUBA.L An,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91d0_0)(uae_u32 opcode) /* SUBA.L (An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91d8_0)(uae_u32 opcode) /* SUBA.L (An)+,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91e0_0)(uae_u32 opcode) /* SUBA.L -(An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91e8_0)(uae_u32 opcode) /* SUBA.L (d16,An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91f0_0)(uae_u32 opcode) /* SUBA.L (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91f8_0)(uae_u32 opcode) /* SUBA.L (xxx).W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91f9_0)(uae_u32 opcode) /* SUBA.L (xxx).L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91fa_0)(uae_u32 opcode) /* SUBA.L (d16,PC),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91fb_0)(uae_u32 opcode) /* SUBA.L (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91fc_0)(uae_u32 opcode) /* SUBA.L #.L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_b000_0)(uae_u32 opcode) /* CMP.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b010_0)(uae_u32 opcode) /* CMP.B (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b018_0)(uae_u32 opcode) /* CMP.B (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b020_0)(uae_u32 opcode) /* CMP.B -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b028_0)(uae_u32 opcode) /* CMP.B (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b030_0)(uae_u32 opcode) /* CMP.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b038_0)(uae_u32 opcode) /* CMP.B (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b039_0)(uae_u32 opcode) /* CMP.B (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b03a_0)(uae_u32 opcode) /* CMP.B (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b03b_0)(uae_u32 opcode) /* CMP.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b03c_0)(uae_u32 opcode) /* CMP.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b040_0)(uae_u32 opcode) /* CMP.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +#endif + +#ifdef PART_7 +void REGPARAM2 CPUFUNC(op_b048_0)(uae_u32 opcode) /* CMP.W An,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b050_0)(uae_u32 opcode) /* CMP.W (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b058_0)(uae_u32 opcode) /* CMP.W (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b060_0)(uae_u32 opcode) /* CMP.W -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b068_0)(uae_u32 opcode) /* CMP.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b070_0)(uae_u32 opcode) /* CMP.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b078_0)(uae_u32 opcode) /* CMP.W (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b079_0)(uae_u32 opcode) /* CMP.W (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b07a_0)(uae_u32 opcode) /* CMP.W (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b07b_0)(uae_u32 opcode) /* CMP.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b07c_0)(uae_u32 opcode) /* CMP.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b080_0)(uae_u32 opcode) /* CMP.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b088_0)(uae_u32 opcode) /* CMP.L An,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b090_0)(uae_u32 opcode) /* CMP.L (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b098_0)(uae_u32 opcode) /* CMP.L (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0a0_0)(uae_u32 opcode) /* CMP.L -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0a8_0)(uae_u32 opcode) /* CMP.L (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0b0_0)(uae_u32 opcode) /* CMP.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0b8_0)(uae_u32 opcode) /* CMP.L (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0b9_0)(uae_u32 opcode) /* CMP.L (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0ba_0)(uae_u32 opcode) /* CMP.L (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0bb_0)(uae_u32 opcode) /* CMP.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0bc_0)(uae_u32 opcode) /* CMP.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0c0_0)(uae_u32 opcode) /* CMPA.W Dn,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0c8_0)(uae_u32 opcode) /* CMPA.W An,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0d0_0)(uae_u32 opcode) /* CMPA.W (An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0d8_0)(uae_u32 opcode) /* CMPA.W (An)+,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0e0_0)(uae_u32 opcode) /* CMPA.W -(An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0e8_0)(uae_u32 opcode) /* CMPA.W (d16,An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0f0_0)(uae_u32 opcode) /* CMPA.W (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0f8_0)(uae_u32 opcode) /* CMPA.W (xxx).W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0f9_0)(uae_u32 opcode) /* CMPA.W (xxx).L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0fa_0)(uae_u32 opcode) /* CMPA.W (d16,PC),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0fb_0)(uae_u32 opcode) /* CMPA.W (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0fc_0)(uae_u32 opcode) /* CMPA.W #.W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b100_0)(uae_u32 opcode) /* EOR.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b108_0)(uae_u32 opcode) /* CMPM.B (An)+,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b110_0)(uae_u32 opcode) /* EOR.B Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b118_0)(uae_u32 opcode) /* EOR.B Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b120_0)(uae_u32 opcode) /* EOR.B Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b128_0)(uae_u32 opcode) /* EOR.B Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b130_0)(uae_u32 opcode) /* EOR.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b138_0)(uae_u32 opcode) /* EOR.B Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b139_0)(uae_u32 opcode) /* EOR.B Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b140_0)(uae_u32 opcode) /* EOR.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b148_0)(uae_u32 opcode) /* CMPM.W (An)+,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b150_0)(uae_u32 opcode) /* EOR.W Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b158_0)(uae_u32 opcode) /* EOR.W Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b160_0)(uae_u32 opcode) /* EOR.W Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b168_0)(uae_u32 opcode) /* EOR.W Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b170_0)(uae_u32 opcode) /* EOR.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b178_0)(uae_u32 opcode) /* EOR.W Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b179_0)(uae_u32 opcode) /* EOR.W Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b180_0)(uae_u32 opcode) /* EOR.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b188_0)(uae_u32 opcode) /* CMPM.L (An)+,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b190_0)(uae_u32 opcode) /* EOR.L Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b198_0)(uae_u32 opcode) /* EOR.L Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1a0_0)(uae_u32 opcode) /* EOR.L Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1a8_0)(uae_u32 opcode) /* EOR.L Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1b0_0)(uae_u32 opcode) /* EOR.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1b8_0)(uae_u32 opcode) /* EOR.L Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1b9_0)(uae_u32 opcode) /* EOR.L Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1c0_0)(uae_u32 opcode) /* CMPA.L Dn,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1c8_0)(uae_u32 opcode) /* CMPA.L An,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1d0_0)(uae_u32 opcode) /* CMPA.L (An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1d8_0)(uae_u32 opcode) /* CMPA.L (An)+,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1e0_0)(uae_u32 opcode) /* CMPA.L -(An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1e8_0)(uae_u32 opcode) /* CMPA.L (d16,An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1f0_0)(uae_u32 opcode) /* CMPA.L (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1f8_0)(uae_u32 opcode) /* CMPA.L (xxx).W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1f9_0)(uae_u32 opcode) /* CMPA.L (xxx).L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1fa_0)(uae_u32 opcode) /* CMPA.L (d16,PC),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1fb_0)(uae_u32 opcode) /* CMPA.L (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1fc_0)(uae_u32 opcode) /* CMPA.L #.L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c000_0)(uae_u32 opcode) /* AND.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c010_0)(uae_u32 opcode) /* AND.B (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c018_0)(uae_u32 opcode) /* AND.B (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c020_0)(uae_u32 opcode) /* AND.B -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c028_0)(uae_u32 opcode) /* AND.B (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c030_0)(uae_u32 opcode) /* AND.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c038_0)(uae_u32 opcode) /* AND.B (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c039_0)(uae_u32 opcode) /* AND.B (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c03a_0)(uae_u32 opcode) /* AND.B (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c03b_0)(uae_u32 opcode) /* AND.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c03c_0)(uae_u32 opcode) /* AND.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c040_0)(uae_u32 opcode) /* AND.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c050_0)(uae_u32 opcode) /* AND.W (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c058_0)(uae_u32 opcode) /* AND.W (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c060_0)(uae_u32 opcode) /* AND.W -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c068_0)(uae_u32 opcode) /* AND.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c070_0)(uae_u32 opcode) /* AND.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c078_0)(uae_u32 opcode) /* AND.W (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c079_0)(uae_u32 opcode) /* AND.W (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c07a_0)(uae_u32 opcode) /* AND.W (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c07b_0)(uae_u32 opcode) /* AND.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c07c_0)(uae_u32 opcode) /* AND.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c080_0)(uae_u32 opcode) /* AND.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c090_0)(uae_u32 opcode) /* AND.L (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c098_0)(uae_u32 opcode) /* AND.L (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0a0_0)(uae_u32 opcode) /* AND.L -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0a8_0)(uae_u32 opcode) /* AND.L (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0b0_0)(uae_u32 opcode) /* AND.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0b8_0)(uae_u32 opcode) /* AND.L (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0b9_0)(uae_u32 opcode) /* AND.L (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0ba_0)(uae_u32 opcode) /* AND.L (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0bb_0)(uae_u32 opcode) /* AND.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0bc_0)(uae_u32 opcode) /* AND.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0c0_0)(uae_u32 opcode) /* MULU.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0d0_0)(uae_u32 opcode) /* MULU.W (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0d8_0)(uae_u32 opcode) /* MULU.W (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0e0_0)(uae_u32 opcode) /* MULU.W -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0e8_0)(uae_u32 opcode) /* MULU.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0f0_0)(uae_u32 opcode) /* MULU.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0f8_0)(uae_u32 opcode) /* MULU.W (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0f9_0)(uae_u32 opcode) /* MULU.W (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0fa_0)(uae_u32 opcode) /* MULU.W (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0fb_0)(uae_u32 opcode) /* MULU.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0fc_0)(uae_u32 opcode) /* MULU.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c100_0)(uae_u32 opcode) /* ABCD.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv, 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 & (((uae_s8)(newv)) == 0)); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c108_0)(uae_u32 opcode) /* ABCD.B -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 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 & (((uae_s8)(newv)) == 0)); + put_byte(dsta,newv); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c110_0)(uae_u32 opcode) /* AND.B Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c118_0)(uae_u32 opcode) /* AND.B Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c120_0)(uae_u32 opcode) /* AND.B Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c128_0)(uae_u32 opcode) /* AND.B Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c130_0)(uae_u32 opcode) /* AND.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c138_0)(uae_u32 opcode) /* AND.B Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c139_0)(uae_u32 opcode) /* AND.B Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_c140_0)(uae_u32 opcode) /* EXG.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + m68k_dreg(regs, srcreg) = (dst); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_c148_0)(uae_u32 opcode) /* EXG.L An,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); + m68k_areg(regs, srcreg) = (dst); + m68k_areg(regs, dstreg) = (src); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_c150_0)(uae_u32 opcode) /* AND.W Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c158_0)(uae_u32 opcode) /* AND.W Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c160_0)(uae_u32 opcode) /* AND.W Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c168_0)(uae_u32 opcode) /* AND.W Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c170_0)(uae_u32 opcode) /* AND.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c178_0)(uae_u32 opcode) /* AND.W Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c179_0)(uae_u32 opcode) /* AND.W Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_c188_0)(uae_u32 opcode) /* EXG.L Dn,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); + m68k_dreg(regs, srcreg) = (dst); + m68k_areg(regs, dstreg) = (src); +}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_c190_0)(uae_u32 opcode) /* AND.L Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c198_0)(uae_u32 opcode) /* AND.L Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1a0_0)(uae_u32 opcode) /* AND.L Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1a8_0)(uae_u32 opcode) /* AND.L Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1b0_0)(uae_u32 opcode) /* AND.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1b8_0)(uae_u32 opcode) /* AND.L Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1b9_0)(uae_u32 opcode) /* AND.L Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1c0_0)(uae_u32 opcode) /* MULS.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1d0_0)(uae_u32 opcode) /* MULS.W (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1d8_0)(uae_u32 opcode) /* MULS.W (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1e0_0)(uae_u32 opcode) /* MULS.W -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1e8_0)(uae_u32 opcode) /* MULS.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1f0_0)(uae_u32 opcode) /* MULS.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1f8_0)(uae_u32 opcode) /* MULS.W (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1f9_0)(uae_u32 opcode) /* MULS.W (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1fa_0)(uae_u32 opcode) /* MULS.W (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1fb_0)(uae_u32 opcode) /* MULS.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1fc_0)(uae_u32 opcode) /* MULS.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d000_0)(uae_u32 opcode) /* ADD.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d010_0)(uae_u32 opcode) /* ADD.B (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d018_0)(uae_u32 opcode) /* ADD.B (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d020_0)(uae_u32 opcode) /* ADD.B -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d028_0)(uae_u32 opcode) /* ADD.B (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d030_0)(uae_u32 opcode) /* ADD.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d038_0)(uae_u32 opcode) /* ADD.B (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d039_0)(uae_u32 opcode) /* ADD.B (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d03a_0)(uae_u32 opcode) /* ADD.B (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d03b_0)(uae_u32 opcode) /* ADD.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d03c_0)(uae_u32 opcode) /* ADD.B #.B,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d040_0)(uae_u32 opcode) /* ADD.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d048_0)(uae_u32 opcode) /* ADD.W An,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d050_0)(uae_u32 opcode) /* ADD.W (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d058_0)(uae_u32 opcode) /* ADD.W (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d060_0)(uae_u32 opcode) /* ADD.W -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d068_0)(uae_u32 opcode) /* ADD.W (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d070_0)(uae_u32 opcode) /* ADD.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d078_0)(uae_u32 opcode) /* ADD.W (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d079_0)(uae_u32 opcode) /* ADD.W (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d07a_0)(uae_u32 opcode) /* ADD.W (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d07b_0)(uae_u32 opcode) /* ADD.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d07c_0)(uae_u32 opcode) /* ADD.W #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d080_0)(uae_u32 opcode) /* ADD.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d088_0)(uae_u32 opcode) /* ADD.L An,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d090_0)(uae_u32 opcode) /* ADD.L (An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d098_0)(uae_u32 opcode) /* ADD.L (An)+,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d0a0_0)(uae_u32 opcode) /* ADD.L -(An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d0a8_0)(uae_u32 opcode) /* ADD.L (d16,An),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d0b0_0)(uae_u32 opcode) /* ADD.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d0b8_0)(uae_u32 opcode) /* ADD.L (xxx).W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d0b9_0)(uae_u32 opcode) /* ADD.L (xxx).L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d0ba_0)(uae_u32 opcode) /* ADD.L (d16,PC),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d0bb_0)(uae_u32 opcode) /* ADD.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d0bc_0)(uae_u32 opcode) /* ADD.L #.L,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0c0_0)(uae_u32 opcode) /* ADDA.W Dn,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0c8_0)(uae_u32 opcode) /* ADDA.W An,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0d0_0)(uae_u32 opcode) /* ADDA.W (An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0d8_0)(uae_u32 opcode) /* ADDA.W (An)+,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0e0_0)(uae_u32 opcode) /* ADDA.W -(An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0e8_0)(uae_u32 opcode) /* ADDA.W (d16,An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0f0_0)(uae_u32 opcode) /* ADDA.W (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0f8_0)(uae_u32 opcode) /* ADDA.W (xxx).W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0f9_0)(uae_u32 opcode) /* ADDA.W (xxx).L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0fa_0)(uae_u32 opcode) /* ADDA.W (d16,PC),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0fb_0)(uae_u32 opcode) /* ADDA.W (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0fc_0)(uae_u32 opcode) /* ADDA.W #.W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_d100_0)(uae_u32 opcode) /* ADDX.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d108_0)(uae_u32 opcode) /* ADDX.B -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d110_0)(uae_u32 opcode) /* ADD.B Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d118_0)(uae_u32 opcode) /* ADD.B Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d120_0)(uae_u32 opcode) /* ADD.B Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d128_0)(uae_u32 opcode) /* ADD.B Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d130_0)(uae_u32 opcode) /* ADD.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d138_0)(uae_u32 opcode) /* ADD.B Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d139_0)(uae_u32 opcode) /* ADD.B Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d140_0)(uae_u32 opcode) /* ADDX.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d148_0)(uae_u32 opcode) /* ADDX.W -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d150_0)(uae_u32 opcode) /* ADD.W Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d158_0)(uae_u32 opcode) /* ADD.W Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d160_0)(uae_u32 opcode) /* ADD.W Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d168_0)(uae_u32 opcode) /* ADD.W Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d170_0)(uae_u32 opcode) /* ADD.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d178_0)(uae_u32 opcode) /* ADD.W Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d179_0)(uae_u32 opcode) /* ADD.W Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d180_0)(uae_u32 opcode) /* ADDX.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d188_0)(uae_u32 opcode) /* ADDX.L -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d190_0)(uae_u32 opcode) /* ADD.L Dn,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d198_0)(uae_u32 opcode) /* ADD.L Dn,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d1a0_0)(uae_u32 opcode) /* ADD.L Dn,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d1a8_0)(uae_u32 opcode) /* ADD.L Dn,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d1b0_0)(uae_u32 opcode) /* ADD.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{m68k_incpc(2); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d1b8_0)(uae_u32 opcode) /* ADD.L Dn,(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d1b9_0)(uae_u32 opcode) /* ADD.L Dn,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1c0_0)(uae_u32 opcode) /* ADDA.L Dn,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1c8_0)(uae_u32 opcode) /* ADDA.L An,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1d0_0)(uae_u32 opcode) /* ADDA.L (An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1d8_0)(uae_u32 opcode) /* ADDA.L (An)+,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#endif + +#ifdef PART_8 +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1e0_0)(uae_u32 opcode) /* ADDA.L -(An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1e8_0)(uae_u32 opcode) /* ADDA.L (d16,An),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1f0_0)(uae_u32 opcode) /* ADDA.L (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1f8_0)(uae_u32 opcode) /* ADDA.L (xxx).W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1f9_0)(uae_u32 opcode) /* ADDA.L (xxx).L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1fa_0)(uae_u32 opcode) /* ADDA.L (d16,PC),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1fb_0)(uae_u32 opcode) /* ADDA.L (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{m68k_incpc(2); +{ uaecptr tmppc = m68k_getpc(); + uaecptr srca = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1fc_0)(uae_u32 opcode) /* ADDA.L #.L,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_e000_0)(uae_u32 opcode) /* ASR.B #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + uae_u32 sign = (0x80 & val) >> 7; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + val = 0xff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xff << (8 - cnt)) & (uae_u32)-sign; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e008_0)(uae_u32 opcode) /* LSR.B #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_CFLG ((cnt == 8) & (val >> 7)); + COPY_CARRY; + val = 0; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e010_0)(uae_u32 opcode) /* ROXR.B #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (7 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e018_0)(uae_u32 opcode) /* ROR.B #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; +{ uae_u32 hival; + cnt &= 7; + hival = val << (8 - cnt); + val >>= cnt; + val |= hival; + val &= 0xff; + SET_CFLG ((val & 0x80) >> 7); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e020_0)(uae_u32 opcode) /* ASR.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + uae_u32 sign = (0x80 & val) >> 7; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + val = 0xff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xff << (8 - cnt)) & (uae_u32)-sign; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e028_0)(uae_u32 opcode) /* LSR.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_CFLG ((cnt == 8) & (val >> 7)); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e030_0)(uae_u32 opcode) /* ROXR.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 36) cnt -= 36; + if (cnt >= 18) cnt -= 18; + if (cnt >= 9) cnt -= 9; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (7 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e038_0)(uae_u32 opcode) /* ROR.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt > 0) { uae_u32 hival; + cnt &= 7; + hival = val << (8 - cnt); + val >>= cnt; + val |= hival; + val &= 0xff; + SET_CFLG ((val & 0x80) >> 7); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e040_0)(uae_u32 opcode) /* ASR.W #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = (0x8000 & val) >> 15; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + val = 0xffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e048_0)(uae_u32 opcode) /* LSR.W #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_CFLG ((cnt == 16) & (val >> 15)); + COPY_CARRY; + val = 0; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e050_0)(uae_u32 opcode) /* ROXR.W #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (15 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e058_0)(uae_u32 opcode) /* ROR.W #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; +{ uae_u32 hival; + cnt &= 15; + hival = val << (16 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffff; + SET_CFLG ((val & 0x8000) >> 15); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e060_0)(uae_u32 opcode) /* ASR.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = (0x8000 & val) >> 15; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + val = 0xffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e068_0)(uae_u32 opcode) /* LSR.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_CFLG ((cnt == 16) & (val >> 15)); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e070_0)(uae_u32 opcode) /* ROXR.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 34) cnt -= 34; + if (cnt >= 17) cnt -= 17; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (15 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e078_0)(uae_u32 opcode) /* ROR.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt > 0) { uae_u32 hival; + cnt &= 15; + hival = val << (16 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffff; + SET_CFLG ((val & 0x8000) >> 15); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e080_0)(uae_u32 opcode) /* ASR.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + uae_u32 sign = (0x80000000 & val) >> 31; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + val = 0xffffffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e088_0)(uae_u32 opcode) /* LSR.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_CFLG ((cnt == 32) & (val >> 31)); + COPY_CARRY; + val = 0; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e090_0)(uae_u32 opcode) /* ROXR.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (31 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffffffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e098_0)(uae_u32 opcode) /* ROR.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; +{ uae_u32 hival; + cnt &= 31; + hival = val << (32 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffffffff; + SET_CFLG ((val & 0x80000000) >> 31); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e0a0_0)(uae_u32 opcode) /* ASR.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + uae_u32 sign = (0x80000000 & val) >> 31; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + val = 0xffffffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e0a8_0)(uae_u32 opcode) /* LSR.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_CFLG ((cnt == 32) & (val >> 31)); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e0b0_0)(uae_u32 opcode) /* ROXR.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 33) cnt -= 33; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (31 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffffffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e0b8_0)(uae_u32 opcode) /* ROR.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt > 0) { uae_u32 hival; + cnt &= 31; + hival = val << (32 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffffffff; + SET_CFLG ((val & 0x80000000) >> 31); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e0d0_0)(uae_u32 opcode) /* ASRW.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e0d8_0)(uae_u32 opcode) /* ASRW.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e0e0_0)(uae_u32 opcode) /* ASRW.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e0e8_0)(uae_u32 opcode) /* ASRW.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e0f0_0)(uae_u32 opcode) /* ASRW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e0f8_0)(uae_u32 opcode) /* ASRW.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e0f9_0)(uae_u32 opcode) /* ASRW.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e100_0)(uae_u32 opcode) /* ASL.B #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + uae_u32 mask = (0xff << (7 - cnt)) & 0xff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY; + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e108_0)(uae_u32 opcode) /* LSL.B #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY; + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e110_0)(uae_u32 opcode) /* ROXL.B #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (7 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e118_0)(uae_u32 opcode) /* ROL.B #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; +{ uae_u32 loval; + cnt &= 7; + loval = val >> (8 - cnt); + val <<= cnt; + val |= loval; + val &= 0xff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e120_0)(uae_u32 opcode) /* ASL.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + uae_u32 mask = (0xff << (7 - cnt)) & 0xff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY; + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e128_0)(uae_u32 opcode) /* LSL.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY; + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e130_0)(uae_u32 opcode) /* ROXL.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 36) cnt -= 36; + if (cnt >= 18) cnt -= 18; + if (cnt >= 9) cnt -= 9; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (7 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e138_0)(uae_u32 opcode) /* ROL.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt > 0) { + uae_u32 loval; + cnt &= 7; + loval = val >> (8 - cnt); + val <<= cnt; + val |= loval; + val &= 0xff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e140_0)(uae_u32 opcode) /* ASL.W #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY; + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e148_0)(uae_u32 opcode) /* LSL.W #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + val <<= (cnt - 1); + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY; + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e150_0)(uae_u32 opcode) /* ROXL.W #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (15 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e158_0)(uae_u32 opcode) /* ROL.W #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; +{ uae_u32 loval; + cnt &= 15; + loval = val >> (16 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e160_0)(uae_u32 opcode) /* ASL.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY; + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e168_0)(uae_u32 opcode) /* LSL.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val <<= (cnt - 1); + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY; + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e170_0)(uae_u32 opcode) /* ROXL.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 34) cnt -= 34; + if (cnt >= 17) cnt -= 17; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (15 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e178_0)(uae_u32 opcode) /* ROL.W Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt > 0) { + uae_u32 loval; + cnt &= 15; + loval = val >> (16 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e180_0)(uae_u32 opcode) /* ASL.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY; + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e188_0)(uae_u32 opcode) /* LSL.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY; + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e190_0)(uae_u32 opcode) /* ROXL.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (31 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffffffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e198_0)(uae_u32 opcode) /* ROL.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; +{ uae_u32 loval; + cnt &= 31; + loval = val >> (32 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffffffff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1a0_0)(uae_u32 opcode) /* ASL.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY; + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1a8_0)(uae_u32 opcode) /* LSL.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY; + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1b0_0)(uae_u32 opcode) /* ROXL.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 33) cnt -= 33; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (31 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffffffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1b8_0)(uae_u32 opcode) /* ROL.L Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt > 0) { + uae_u32 loval; + cnt &= 31; + loval = val >> (32 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffffffff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1d0_0)(uae_u32 opcode) /* ASLW.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1d8_0)(uae_u32 opcode) /* ASLW.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1e0_0)(uae_u32 opcode) /* ASLW.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1e8_0)(uae_u32 opcode) /* ASLW.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1f0_0)(uae_u32 opcode) /* ASLW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1f8_0)(uae_u32 opcode) /* ASLW.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1f9_0)(uae_u32 opcode) /* ASLW.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e2d0_0)(uae_u32 opcode) /* LSRW.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e2d8_0)(uae_u32 opcode) /* LSRW.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e2e0_0)(uae_u32 opcode) /* LSRW.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e2e8_0)(uae_u32 opcode) /* LSRW.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e2f0_0)(uae_u32 opcode) /* LSRW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e2f8_0)(uae_u32 opcode) /* LSRW.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e2f9_0)(uae_u32 opcode) /* LSRW.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e3d0_0)(uae_u32 opcode) /* LSLW.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e3d8_0)(uae_u32 opcode) /* LSLW.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e3e0_0)(uae_u32 opcode) /* LSLW.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e3e8_0)(uae_u32 opcode) /* LSLW.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e3f0_0)(uae_u32 opcode) /* LSLW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e3f8_0)(uae_u32 opcode) /* LSLW.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e3f9_0)(uae_u32 opcode) /* LSLW.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e4d0_0)(uae_u32 opcode) /* ROXRW.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e4d8_0)(uae_u32 opcode) /* ROXRW.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e4e0_0)(uae_u32 opcode) /* ROXRW.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e4e8_0)(uae_u32 opcode) /* ROXRW.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e4f0_0)(uae_u32 opcode) /* ROXRW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e4f8_0)(uae_u32 opcode) /* ROXRW.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e4f9_0)(uae_u32 opcode) /* ROXRW.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e5d0_0)(uae_u32 opcode) /* ROXLW.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e5d8_0)(uae_u32 opcode) /* ROXLW.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e5e0_0)(uae_u32 opcode) /* ROXLW.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e5e8_0)(uae_u32 opcode) /* ROXLW.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e5f0_0)(uae_u32 opcode) /* ROXLW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e5f8_0)(uae_u32 opcode) /* ROXLW.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e5f9_0)(uae_u32 opcode) /* ROXLW.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e6d0_0)(uae_u32 opcode) /* RORW.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e6d8_0)(uae_u32 opcode) /* RORW.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e6e0_0)(uae_u32 opcode) /* RORW.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e6e8_0)(uae_u32 opcode) /* RORW.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e6f0_0)(uae_u32 opcode) /* RORW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e6f8_0)(uae_u32 opcode) /* RORW.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e6f9_0)(uae_u32 opcode) /* RORW.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e7d0_0)(uae_u32 opcode) /* ROLW.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e7d8_0)(uae_u32 opcode) /* ROLW.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e7e0_0)(uae_u32 opcode) /* ROLW.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e7e8_0)(uae_u32 opcode) /* ROLW.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e7f0_0)(uae_u32 opcode) /* ROLW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e7f8_0)(uae_u32 opcode) /* ROLW.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e7f9_0)(uae_u32 opcode) /* ROLW.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e8c0_0)(uae_u32 opcode) /* BFTST.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e8d0_0)(uae_u32 opcode) /* BFTST.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e8e8_0)(uae_u32 opcode) /* BFTST.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e8f0_0)(uae_u32 opcode) /* BFTST.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e8f8_0)(uae_u32 opcode) /* BFTST.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e8f9_0)(uae_u32 opcode) /* BFTST.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e8fa_0)(uae_u32 opcode) /* BFTST.L #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e8fb_0)(uae_u32 opcode) /* BFTST.L #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e9c0_0)(uae_u32 opcode) /* BFEXTU.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e9d0_0)(uae_u32 opcode) /* BFEXTU.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e9e8_0)(uae_u32 opcode) /* BFEXTU.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e9f0_0)(uae_u32 opcode) /* BFEXTU.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e9f8_0)(uae_u32 opcode) /* BFEXTU.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e9f9_0)(uae_u32 opcode) /* BFEXTU.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e9fa_0)(uae_u32 opcode) /* BFEXTU.L #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e9fb_0)(uae_u32 opcode) /* BFEXTU.L #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eac0_0)(uae_u32 opcode) /* BFCHG.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = ~tmp; + tmp <<= (32 - width); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ((offset & 0x1f) == 0 ? 0 : + (0xffffffff << (32 - (offset & 0x1f))))) | + (tmp >> (offset & 0x1f)) | + (((offset & 0x1f) + width) >= 32 ? 0 : + (m68k_dreg(regs, dstreg) & ((uae_u32)0xffffffff >> ((offset & 0x1f) + width)))); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ead0_0)(uae_u32 opcode) /* BFCHG.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = ~tmp; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eae8_0)(uae_u32 opcode) /* BFCHG.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = ~tmp; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eaf0_0)(uae_u32 opcode) /* BFCHG.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = ~tmp; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eaf8_0)(uae_u32 opcode) /* BFCHG.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = ~tmp; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eaf9_0)(uae_u32 opcode) /* BFCHG.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = ~tmp; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ebc0_0)(uae_u32 opcode) /* BFEXTS.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ebd0_0)(uae_u32 opcode) /* BFEXTS.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ebe8_0)(uae_u32 opcode) /* BFEXTS.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ebf0_0)(uae_u32 opcode) /* BFEXTS.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ebf8_0)(uae_u32 opcode) /* BFEXTS.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ebf9_0)(uae_u32 opcode) /* BFEXTS.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ebfa_0)(uae_u32 opcode) /* BFEXTS.L #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ebfb_0)(uae_u32 opcode) /* BFEXTS.L #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width); + m68k_dreg(regs, (extra >> 12) & 7) = tmp; +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ecc0_0)(uae_u32 opcode) /* BFCLR.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0; + tmp <<= (32 - width); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ((offset & 0x1f) == 0 ? 0 : + (0xffffffff << (32 - (offset & 0x1f))))) | + (tmp >> (offset & 0x1f)) | + (((offset & 0x1f) + width) >= 32 ? 0 : + (m68k_dreg(regs, dstreg) & ((uae_u32)0xffffffff >> ((offset & 0x1f) + width)))); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ecd0_0)(uae_u32 opcode) /* BFCLR.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ece8_0)(uae_u32 opcode) /* BFCLR.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ecf0_0)(uae_u32 opcode) /* BFCLR.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ecf8_0)(uae_u32 opcode) /* BFCLR.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ecf9_0)(uae_u32 opcode) /* BFCLR.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_edc0_0)(uae_u32 opcode) /* BFFFO.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + { uae_u32 mask = 1 << (width-1); + while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }} + m68k_dreg(regs, (extra >> 12) & 7) = offset; +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_edd0_0)(uae_u32 opcode) /* BFFFO.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + { uae_u32 mask = 1 << (width-1); + while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }} + m68k_dreg(regs, (extra >> 12) & 7) = offset; +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_ede8_0)(uae_u32 opcode) /* BFFFO.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + { uae_u32 mask = 1 << (width-1); + while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }} + m68k_dreg(regs, (extra >> 12) & 7) = offset; +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_edf0_0)(uae_u32 opcode) /* BFFFO.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + { uae_u32 mask = 1 << (width-1); + while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }} + m68k_dreg(regs, (extra >> 12) & 7) = offset; +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_edf8_0)(uae_u32 opcode) /* BFFFO.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + { uae_u32 mask = 1 << (width-1); + while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }} + m68k_dreg(regs, (extra >> 12) & 7) = offset; +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_edf9_0)(uae_u32 opcode) /* BFFFO.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + { uae_u32 mask = 1 << (width-1); + while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }} + m68k_dreg(regs, (extra >> 12) & 7) = offset; +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_edfa_0)(uae_u32 opcode) /* BFFFO.L #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + { uae_u32 mask = 1 << (width-1); + while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }} + m68k_dreg(regs, (extra >> 12) & 7) = offset; +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_edfb_0)(uae_u32 opcode) /* BFFFO.L #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr tmppc = m68k_getpc(); + uaecptr dsta = get_disp_ea_020(tmppc, next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + { uae_u32 mask = 1 << (width-1); + while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }} + m68k_dreg(regs, (extra >> 12) & 7) = offset; +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eec0_0)(uae_u32 opcode) /* BFSET.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0xffffffff; + tmp <<= (32 - width); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ((offset & 0x1f) == 0 ? 0 : + (0xffffffff << (32 - (offset & 0x1f))))) | + (tmp >> (offset & 0x1f)) | + (((offset & 0x1f) + width) >= 32 ? 0 : + (m68k_dreg(regs, dstreg) & ((uae_u32)0xffffffff >> ((offset & 0x1f) + width)))); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eed0_0)(uae_u32 opcode) /* BFSET.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0xffffffff; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eee8_0)(uae_u32 opcode) /* BFSET.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0xffffffff; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eef0_0)(uae_u32 opcode) /* BFSET.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0xffffffff; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eef8_0)(uae_u32 opcode) /* BFSET.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0xffffffff; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eef9_0)(uae_u32 opcode) /* BFSET.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = 0xffffffff; + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_efc0_0)(uae_u32 opcode) /* BFINS.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = m68k_dreg(regs, (extra >> 12) & 7); + SET_NFLG_ALWAYS (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + tmp <<= (32 - width); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ((offset & 0x1f) == 0 ? 0 : + (0xffffffff << (32 - (offset & 0x1f))))) | + (tmp >> (offset & 0x1f)) | + (((offset & 0x1f) + width) >= 32 ? 0 : + (m68k_dreg(regs, dstreg) & ((uae_u32)0xffffffff >> ((offset & 0x1f) + width)))); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_efd0_0)(uae_u32 opcode) /* BFINS.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = m68k_dreg(regs, (extra >> 12) & 7); + SET_NFLG_ALWAYS (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_efe8_0)(uae_u32 opcode) /* BFINS.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = m68k_dreg(regs, (extra >> 12) & 7); + SET_NFLG_ALWAYS (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eff0_0)(uae_u32 opcode) /* BFINS.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +{m68k_incpc(4); +{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword()); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = m68k_dreg(regs, (extra >> 12) & 7); + SET_NFLG_ALWAYS (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eff8_0)(uae_u32 opcode) /* BFINS.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = m68k_dreg(regs, (extra >> 12) & 7); + SET_NFLG_ALWAYS (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_eff9_0)(uae_u32 opcode) /* BFINS.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp,bf0,bf1; + dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0); + bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff; + tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7))); + tmp >>= (32 - width); + SET_NFLG_ALWAYS (tmp & (1 << (width-1)) ? 1 : 0); + SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); + tmp = m68k_dreg(regs, (extra >> 12) & 7); + SET_NFLG_ALWAYS (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + tmp <<= (32 - width); + bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) | + (tmp >> (offset & 7)) | + (((offset & 7) + width) >= 32 ? 0 : + (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width)))); + put_long(dsta,bf0 ); + if (((offset & 7) + width) > 32) { + bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) | + (tmp << (8 - (offset & 7))); + put_byte(dsta+4,bf1); + } +}}}}m68k_incpc(8); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f200_0)(uae_u32 opcode) /* FPP.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f208_0)(uae_u32 opcode) /* FPP.L #.W,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f210_0)(uae_u32 opcode) /* FPP.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f218_0)(uae_u32 opcode) /* FPP.L #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f220_0)(uae_u32 opcode) /* FPP.L #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f228_0)(uae_u32 opcode) /* FPP.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f230_0)(uae_u32 opcode) /* FPP.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f238_0)(uae_u32 opcode) /* FPP.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f239_0)(uae_u32 opcode) /* FPP.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f23a_0)(uae_u32 opcode) /* FPP.L #.W,(d16,PC) */ +{ + cpuop_begin(); + uae_u32 dstreg = 2; +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f23b_0)(uae_u32 opcode) /* FPP.L #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f23c_0)(uae_u32 opcode) /* FPP.L #.W,#.L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_arithmetic(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f240_0)(uae_u32 opcode) /* FScc.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_scc(opcode,extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f248_0)(uae_u32 opcode) /* FDBcc.L #.W,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_dbcc(opcode, extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f250_0)(uae_u32 opcode) /* FScc.L #.W,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_scc(opcode,extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f258_0)(uae_u32 opcode) /* FScc.L #.W,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_scc(opcode,extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f260_0)(uae_u32 opcode) /* FScc.L #.W,-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_scc(opcode,extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f268_0)(uae_u32 opcode) /* FScc.L #.W,(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_scc(opcode,extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f270_0)(uae_u32 opcode) /* FScc.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_scc(opcode,extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f278_0)(uae_u32 opcode) /* FScc.L #.W,(xxx).W */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_scc(opcode,extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f279_0)(uae_u32 opcode) /* FScc.L #.W,(xxx).L */ +{ + cpuop_begin(); +{{ uae_s16 extra = get_iword(2); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_scc(opcode,extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f27a_0)(uae_u32 opcode) /* FTRAPcc.L #.W */ +{ + cpuop_begin(); +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 dummy = get_iword(0); +m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_trapcc(opcode,oldpc); +}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f27b_0)(uae_u32 opcode) /* FTRAPcc.L #.L */ +{ + cpuop_begin(); +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +{ uae_s32 dummy = get_ilong(0); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_trapcc(opcode,oldpc); +}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f27c_0)(uae_u32 opcode) /* FTRAPcc.L */ +{ + cpuop_begin(); +{m68k_incpc(2); +{ uaecptr oldpc = m68k_getpc(); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_trapcc(opcode,oldpc); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f280_0)(uae_u32 opcode) /* FBcc.L #,#.W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 63); +#else + uae_u32 srcreg = (opcode & 63); +#endif +{m68k_incpc(2); +{ uaecptr pc = m68k_getpc(); +{ uae_s16 extra = get_iword(0); +m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_bcc(opcode,pc,extra); +}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f2c0_0)(uae_u32 opcode) /* FBcc.L #,#.L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 63); +#else + uae_u32 srcreg = (opcode & 63); +#endif +{m68k_incpc(2); +{ uaecptr pc = m68k_getpc(); +{ uae_s32 extra = get_ilong(0); +m68k_incpc(4); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_bcc(opcode,pc,extra); +}}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f310_0)(uae_u32 opcode) /* FSAVE.L (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1829; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_save(opcode); +}}endlabel1829: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f320_0)(uae_u32 opcode) /* FSAVE.L -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1830; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_save(opcode); +}}endlabel1830: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f328_0)(uae_u32 opcode) /* FSAVE.L (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1831; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_save(opcode); +}}endlabel1831: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f330_0)(uae_u32 opcode) /* FSAVE.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1832; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_save(opcode); +}}endlabel1832: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f338_0)(uae_u32 opcode) /* FSAVE.L (xxx).W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel1833; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_save(opcode); +}}endlabel1833: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f339_0)(uae_u32 opcode) /* FSAVE.L (xxx).L */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel1834; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_save(opcode); +}}endlabel1834: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f350_0)(uae_u32 opcode) /* FRESTORE.L (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1835; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_restore(opcode); +}}endlabel1835: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f358_0)(uae_u32 opcode) /* FRESTORE.L (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1836; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_restore(opcode); +}}endlabel1836: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f368_0)(uae_u32 opcode) /* FRESTORE.L (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1837; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_restore(opcode); +}}endlabel1837: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f370_0)(uae_u32 opcode) /* FRESTORE.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1838; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_restore(opcode); +}}endlabel1838: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f378_0)(uae_u32 opcode) /* FRESTORE.L (xxx).W */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel1839; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_restore(opcode); +}}endlabel1839: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f379_0)(uae_u32 opcode) /* FRESTORE.L (xxx).L */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel1840; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_restore(opcode); +}}endlabel1840: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f37a_0)(uae_u32 opcode) /* FRESTORE.L (d16,PC) */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel1841; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_restore(opcode); +}}endlabel1841: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f37b_0)(uae_u32 opcode) /* FRESTORE.L (d8,PC,Xn) */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel1842; } +{m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + fpuop_restore(opcode); +}}endlabel1842: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f408_0)(uae_u32 opcode) /* CINVL.L #,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1843; } +{ if (srcreg&0x2) + flush_icache(31); +}}m68k_incpc(2); +endlabel1843: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f410_0)(uae_u32 opcode) /* CINVP.L #,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1844; } +{ if (srcreg&0x2) + flush_icache(32); +}}m68k_incpc(2); +endlabel1844: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f418_0)(uae_u32 opcode) /* CINVA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1845; } +{ if (srcreg&0x2) + flush_icache(33); +}}m68k_incpc(2); +endlabel1845: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f419_0)(uae_u32 opcode) /* CINVA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1846; } +{ if (srcreg&0x2) + flush_icache(33); +}}m68k_incpc(2); +endlabel1846: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f41a_0)(uae_u32 opcode) /* CINVA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1847; } +{ if (srcreg&0x2) + flush_icache(33); +}}m68k_incpc(2); +endlabel1847: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f41b_0)(uae_u32 opcode) /* CINVA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1848; } +{ if (srcreg&0x2) + flush_icache(33); +}}m68k_incpc(2); +endlabel1848: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f41c_0)(uae_u32 opcode) /* CINVA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1849; } +{ if (srcreg&0x2) + flush_icache(33); +}}m68k_incpc(2); +endlabel1849: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f41d_0)(uae_u32 opcode) /* CINVA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1850; } +{ if (srcreg&0x2) + flush_icache(33); +}}m68k_incpc(2); +endlabel1850: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f41e_0)(uae_u32 opcode) /* CINVA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1851; } +{ if (srcreg&0x2) + flush_icache(33); +}}m68k_incpc(2); +endlabel1851: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f41f_0)(uae_u32 opcode) /* CINVA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1852; } +{ if (srcreg&0x2) + flush_icache(33); +}}m68k_incpc(2); +endlabel1852: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f428_0)(uae_u32 opcode) /* CPUSHL.L #,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1853; } +{ if (srcreg&0x2) + flush_icache(41); +}}m68k_incpc(2); +endlabel1853: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f430_0)(uae_u32 opcode) /* CPUSHP.L #,An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1854; } +{ if (srcreg&0x2) + flush_icache(42); +}}m68k_incpc(2); +endlabel1854: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f438_0)(uae_u32 opcode) /* CPUSHA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1855; } +{ if (srcreg&0x2) + flush_icache(43); +}}m68k_incpc(2); +endlabel1855: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f439_0)(uae_u32 opcode) /* CPUSHA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1856; } +{ if (srcreg&0x2) + flush_icache(43); +}}m68k_incpc(2); +endlabel1856: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f43a_0)(uae_u32 opcode) /* CPUSHA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1857; } +{ if (srcreg&0x2) + flush_icache(43); +}}m68k_incpc(2); +endlabel1857: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f43b_0)(uae_u32 opcode) /* CPUSHA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1858; } +{ if (srcreg&0x2) + flush_icache(43); +}}m68k_incpc(2); +endlabel1858: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f43c_0)(uae_u32 opcode) /* CPUSHA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1859; } +{ if (srcreg&0x2) + flush_icache(43); +}}m68k_incpc(2); +endlabel1859: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f43d_0)(uae_u32 opcode) /* CPUSHA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1860; } +{ if (srcreg&0x2) + flush_icache(43); +}}m68k_incpc(2); +endlabel1860: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f43e_0)(uae_u32 opcode) /* CPUSHA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1861; } +{ if (srcreg&0x2) + flush_icache(43); +}}m68k_incpc(2); +endlabel1861: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f43f_0)(uae_u32 opcode) /* CPUSHA.L # */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 14) & 3); +#else + uae_u32 srcreg = ((opcode >> 6) & 3); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel1862; } +{ if (srcreg&0x2) + flush_icache(43); +}}m68k_incpc(2); +endlabel1862: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f500_0)(uae_u32 opcode) /* MMUOP.L #,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = (uae_s32)(uae_s8)(((opcode >> 11) | (opcode << 5)) & 7); +#else + uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 3) & 255); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 extra = srcreg; +m68k_incpc(2); +#ifdef HAVE_GET_WORD_UNSWAPPED + opcode = ((opcode << 8) & 0xFF00) | ((opcode >> 8) & 0xFF); +#endif + mmu_op(opcode,extra); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f600_0)(uae_u32 opcode) /* MOVE16.L (An)+,(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr memsa = m68k_areg(regs, srcreg); +{ uaecptr memda = get_ilong(2); + memsa &= ~15; + memda &= ~15; + put_long(memda, get_long(memsa)); + put_long(memda+4, get_long(memsa+4)); + put_long(memda+8, get_long(memsa+8)); + put_long(memda+12, get_long(memsa+12)); + m68k_areg(regs, srcreg) += 16; +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f608_0)(uae_u32 opcode) /* MOVE16.L (xxx).L,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uaecptr memsa = get_ilong(2); +{ uaecptr memda = m68k_areg(regs, dstreg); + memsa &= ~15; + memda &= ~15; + put_long(memda, get_long(memsa)); + put_long(memda+4, get_long(memsa+4)); + put_long(memda+8, get_long(memsa+8)); + put_long(memda+12, get_long(memsa+12)); + m68k_areg(regs, dstreg) += 16; +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f610_0)(uae_u32 opcode) /* MOVE16.L (An),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr memsa = m68k_areg(regs, srcreg); +{ uaecptr memda = get_ilong(2); + memsa &= ~15; + memda &= ~15; + put_long(memda, get_long(memsa)); + put_long(memda+4, get_long(memsa+4)); + put_long(memda+8, get_long(memsa+8)); + put_long(memda+12, get_long(memsa+12)); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f618_0)(uae_u32 opcode) /* MOVE16.L (xxx).L,(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uaecptr memsa = get_ilong(2); +{ uaecptr memda = m68k_areg(regs, dstreg); + memsa &= ~15; + memda &= ~15; + put_long(memda, get_long(memsa)); + put_long(memda+4, get_long(memsa+4)); + put_long(memda+8, get_long(memsa+8)); + put_long(memda+12, get_long(memsa+12)); +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_f620_0)(uae_u32 opcode) /* MOVE16.L (An)+,(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif + uae_u32 dstreg = 0; +{ uaecptr mems = m68k_areg(regs, srcreg) & ~15, memd; + dstreg = (get_iword(2) >> 12) & 7; + memd = m68k_areg(regs, dstreg) & ~15; + put_long(memd, get_long(mems)); + put_long(memd+4, get_long(mems+4)); + put_long(memd+8, get_long(mems+8)); + put_long(memd+12, get_long(mems+12)); + if (srcreg != dstreg) + m68k_areg(regs, srcreg) += 16; + m68k_areg(regs, dstreg) += 16; +}m68k_incpc(4); + cpuop_end(); +} + +#endif +#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 +#endif + +#ifdef PART_2 +#endif + +#ifdef PART_3 +#endif + +#ifdef PART_4 +void REGPARAM2 CPUFUNC(op_4800_1)(uae_u32 opcode) /* NBCD.B Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff); +}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4810_1)(uae_u32 opcode) /* NBCD.B (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4818_1)(uae_u32 opcode) /* NBCD.B (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4820_1)(uae_u32 opcode) /* NBCD.B -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(2); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4828_1)(uae_u32 opcode) /* NBCD.B (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4830_1)(uae_u32 opcode) /* NBCD.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{m68k_incpc(2); +{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}} cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4838_1)(uae_u32 opcode) /* NBCD.B (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4839_1)(uae_u32 opcode) /* NBCD.B (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(6); + cpuop_end(); +} +#endif + +#ifdef PART_5 +#endif + +#ifdef PART_6 +void REGPARAM2 CPUFUNC(op_8100_1)(uae_u32 opcode) /* SBCD.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv, 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 & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(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); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8108_1)(uae_u32 opcode) /* SBCD.B -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 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 & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte(dsta,newv); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +#endif + +#ifdef PART_7 +void REGPARAM2 CPUFUNC(op_c100_1)(uae_u32 opcode) /* ABCD.B Dn,Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv, 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 & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(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); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c108_1)(uae_u32 opcode) /* ABCD.B -(An),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; +{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 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 & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); + put_byte(dsta,newv); +}}}}}}m68k_incpc(2); + cpuop_end(); +} +#endif + +#ifdef PART_8 +#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 +#endif + +#ifdef PART_2 +#endif + +#ifdef PART_3 +#endif + +#ifdef PART_4 +#endif + +#ifdef PART_5 +#endif + +#ifdef PART_6 +#endif + +#ifdef PART_7 +#endif + +#ifdef PART_8 +#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 +void REGPARAM2 CPUFUNC(op_30_3)(uae_u32 opcode) /* OR.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_70_3)(uae_u32 opcode) /* OR.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0_3)(uae_u32 opcode) /* OR.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_130_3)(uae_u32 opcode) /* BTST.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13b_3)(uae_u32 opcode) /* BTST.B Dn,(d8,PC,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_170_3)(uae_u32 opcode) /* BCHG.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_17b_3)(uae_u32 opcode) /* BCHG.B Dn,(d8,PC,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1b0_3)(uae_u32 opcode) /* BCLR.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1bb_3)(uae_u32 opcode) /* BCLR.B Dn,(d8,PC,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1f0_3)(uae_u32 opcode) /* BSET.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1fb_3)(uae_u32 opcode) /* BSET.B Dn,(d8,PC,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_230_3)(uae_u32 opcode) /* AND.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_270_3)(uae_u32 opcode) /* AND.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2b0_3)(uae_u32 opcode) /* AND.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_430_3)(uae_u32 opcode) /* SUB.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_470_3)(uae_u32 opcode) /* SUB.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4b0_3)(uae_u32 opcode) /* SUB.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_630_3)(uae_u32 opcode) /* ADD.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_670_3)(uae_u32 opcode) /* ADD.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_6b0_3)(uae_u32 opcode) /* ADD.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_830_3)(uae_u32 opcode) /* BTST.B #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_83b_3)(uae_u32 opcode) /* BTST.B #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_870_3)(uae_u32 opcode) /* BCHG.B #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_87b_3)(uae_u32 opcode) /* BCHG.B #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8b0_3)(uae_u32 opcode) /* BCLR.B #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8bb_3)(uae_u32 opcode) /* BCLR.B #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8f0_3)(uae_u32 opcode) /* BSET.B #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8fb_3)(uae_u32 opcode) /* BSET.B #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a30_3)(uae_u32 opcode) /* EOR.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_a70_3)(uae_u32 opcode) /* EOR.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +#endif + +#ifdef PART_2 +void REGPARAM2 CPUFUNC(op_ab0_3)(uae_u32 opcode) /* EOR.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c30_3)(uae_u32 opcode) /* CMP.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c3b_3)(uae_u32 opcode) /* CMP.B #.B,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c70_3)(uae_u32 opcode) /* CMP.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c7b_3)(uae_u32 opcode) /* CMP.W #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cb0_3)(uae_u32 opcode) /* CMP.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_cbb_3)(uae_u32 opcode) /* CMP.L #.L,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{{ uae_s32 src = get_ilong(2); +{ uaecptr tmppc = m68k_getpc() + 6; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(6)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1030_3)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_103b_3)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10b0_3)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10bb_3)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10f0_3)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_10fb_3)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1130_3)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_113b_3)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1170_3)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_117b_3)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1180_3)(uae_u32 opcode) /* MOVE.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1190_3)(uae_u32 opcode) /* MOVE.B (An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_1198_3)(uae_u32 opcode) /* MOVE.B (An)+,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11a0_3)(uae_u32 opcode) /* MOVE.B -(An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11a8_3)(uae_u32 opcode) /* MOVE.B (d16,An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11b0_3)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11b8_3)(uae_u32 opcode) /* MOVE.B (xxx).W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11b9_3)(uae_u32 opcode) /* MOVE.B (xxx).L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11ba_3)(uae_u32 opcode) /* MOVE.B (d16,PC),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11bb_3)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11bc_3)(uae_u32 opcode) /* MOVE.B #.B,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11f0_3)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_11fb_3)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13f0_3)(uae_u32 opcode) /* MOVE.B (d8,An,Xn),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_13fb_3)(uae_u32 opcode) /* MOVE.B (d8,PC,Xn),(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2030_3)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_203b_3)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_2070_3)(uae_u32 opcode) /* MOVEA.L (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_207b_3)(uae_u32 opcode) /* MOVEA.L (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_20b0_3)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20bb_3)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20f0_3)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_20fb_3)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2130_3)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_213b_3)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +#endif + +#ifdef PART_3 +void REGPARAM2 CPUFUNC(op_2170_3)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_217b_3)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2180_3)(uae_u32 opcode) /* MOVE.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2188_3)(uae_u32 opcode) /* MOVE.L An,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2190_3)(uae_u32 opcode) /* MOVE.L (An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_2198_3)(uae_u32 opcode) /* MOVE.L (An)+,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21a0_3)(uae_u32 opcode) /* MOVE.L -(An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21a8_3)(uae_u32 opcode) /* MOVE.L (d16,An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21b0_3)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21b8_3)(uae_u32 opcode) /* MOVE.L (xxx).W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21b9_3)(uae_u32 opcode) /* MOVE.L (xxx).L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21ba_3)(uae_u32 opcode) /* MOVE.L (d16,PC),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21bb_3)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21bc_3)(uae_u32 opcode) /* MOVE.L #.L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21f0_3)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_21fb_3)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23f0_3)(uae_u32 opcode) /* MOVE.L (d8,An,Xn),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_23fb_3)(uae_u32 opcode) /* MOVE.L (d8,PC,Xn),(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3030_3)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_303b_3)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_3070_3)(uae_u32 opcode) /* MOVEA.W (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_307b_3)(uae_u32 opcode) /* MOVEA.W (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); +}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_30b0_3)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30bb_3)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30f0_3)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_30fb_3)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3130_3)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_313b_3)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),-(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3170_3)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_317b_3)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3180_3)(uae_u32 opcode) /* MOVE.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3188_3)(uae_u32 opcode) /* MOVE.W An,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3190_3)(uae_u32 opcode) /* MOVE.W (An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_3198_3)(uae_u32 opcode) /* MOVE.W (An)+,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31a0_3)(uae_u32 opcode) /* MOVE.W -(An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31a8_3)(uae_u32 opcode) /* MOVE.W (d16,An),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31b0_3)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31b8_3)(uae_u32 opcode) /* MOVE.W (xxx).W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31b9_3)(uae_u32 opcode) /* MOVE.W (xxx).L,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31ba_3)(uae_u32 opcode) /* MOVE.W (d16,PC),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31bb_3)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31bc_3)(uae_u32 opcode) /* MOVE.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31f0_3)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(xxx).W */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_31fb_3)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(xxx).W */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33f0_3)(uae_u32 opcode) /* MOVE.W (d8,An,Xn),(xxx).L */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_33fb_3)(uae_u32 opcode) /* MOVE.W (d8,PC,Xn),(xxx).L */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4030_3)(uae_u32 opcode) /* NEGX.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4070_3)(uae_u32 opcode) /* NEGX.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_40b0_3)(uae_u32 opcode) /* NEGX.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40f0_3)(uae_u32 opcode) /* MVSR2.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel2002; } +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + MakeSR(); + put_word(srca,regs.sr); +}}}m68k_incpc(4); +endlabel2002: ; + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_4130_3)(uae_u32 opcode) /* CHK.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel2003; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2003; } +}}}}m68k_incpc(4); +endlabel2003: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_413b_3)(uae_u32 opcode) /* CHK.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel2004; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2004; } +}}}}m68k_incpc(4); +endlabel2004: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_41b0_3)(uae_u32 opcode) /* CHK.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel2005; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2005; } +}}}}m68k_incpc(4); +endlabel2005: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_41bb_3)(uae_u32 opcode) /* CHK.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel2006; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2006; } +}}}}m68k_incpc(4); +endlabel2006: ; + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_41f0_3)(uae_u32 opcode) /* LEA.L (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ m68k_areg(regs, dstreg) = (srca); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_41fb_3)(uae_u32 opcode) /* LEA.L (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ m68k_areg(regs, dstreg) = (srca); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_4230_3)(uae_u32 opcode) /* CLR.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4270_3)(uae_u32 opcode) /* CLR.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(4); + cpuop_end(); +} +#endif + +#ifdef PART_4 +void REGPARAM2 CPUFUNC(op_42b0_3)(uae_u32 opcode) /* CLR.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_42f0_3)(uae_u32 opcode) /* MVSR2.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + MakeSR(); + put_word(srca,regs.sr & 0xff); +}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_4430_3)(uae_u32 opcode) /* NEG.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4470_3)(uae_u32 opcode) /* NEG.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44b0_3)(uae_u32 opcode) /* NEG.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44f0_3)(uae_u32 opcode) /* MV2SR.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_44fb_3)(uae_u32 opcode) /* MV2SR.B (d8,PC,Xn) */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4630_3)(uae_u32 opcode) /* NOT.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4670_3)(uae_u32 opcode) /* NOT.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46b0_3)(uae_u32 opcode) /* NOT.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46f0_3)(uae_u32 opcode) /* MV2SR.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{if (!regs.s) { Exception(8,0); goto endlabel2021; } +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(4); +endlabel2021: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_46fb_3)(uae_u32 opcode) /* MV2SR.W (d8,PC,Xn) */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel2022; } +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(4); +endlabel2022: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4830_3)(uae_u32 opcode) /* NBCD.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo -= 6; } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4870_3)(uae_u32 opcode) /* PEA.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long(dsta,srca); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_487b_3)(uae_u32 opcode) /* PEA.L (d8,PC,Xn) */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long(dsta,srca); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48b0_3)(uae_u32 opcode) /* MVMLE.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; } + while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_48f0_3)(uae_u32 opcode) /* MVMLE.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; } + while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_4a30_3)(uae_u32 opcode) /* TST.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a3b_3)(uae_u32 opcode) /* TST.B (d8,PC,Xn) */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a70_3)(uae_u32 opcode) /* TST.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4a7b_3)(uae_u32 opcode) /* TST.W (d8,PC,Xn) */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4ab0_3)(uae_u32 opcode) /* TST.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4abb_3)(uae_u32 opcode) /* TST.L (d8,PC,Xn) */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_4af0_3)(uae_u32 opcode) /* TAS.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cb0_3)(uae_u32 opcode) /* MVMEL.W #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cbb_3)(uae_u32 opcode) /* MVMEL.W #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(4)); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cf0_3)(uae_u32 opcode) /* MVMEL.L #.W,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4cfb_3)(uae_u32 opcode) /* MVMEL.L #.W,(d8,PC,Xn) */ +{ + cpuop_begin(); + uae_u32 dstreg = 3; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(4)); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4eb0_3)(uae_u32 opcode) /* JSR.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + m68k_do_jsr(m68k_getpc() + 4, srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4ebb_3)(uae_u32 opcode) /* JSR.L (d8,PC,Xn) */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); + m68k_do_jsr(m68k_getpc() + 4, srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4ef0_3)(uae_u32 opcode) /* JMP.L (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + m68k_setpc(srca); +}} cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_4efb_3)(uae_u32 opcode) /* JMP.L (d8,PC,Xn) */ +{ + cpuop_begin(); +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); + m68k_setpc(srca); +}} cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_5030_3)(uae_u32 opcode) /* ADD.B #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +#endif + +#ifdef PART_5 +void REGPARAM2 CPUFUNC(op_5070_3)(uae_u32 opcode) /* ADD.W #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_50b0_3)(uae_u32 opcode) /* ADD.L #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_50f0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_5130_3)(uae_u32 opcode) /* SUB.B #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_5170_3)(uae_u32 opcode) /* SUB.W #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_51b0_3)(uae_u32 opcode) /* SUB.L #,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = imm8_table[((opcode >> 1) & 7)]; +#else + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_51f0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_52f0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_53f0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_54f0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_55f0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_56f0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_57f0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_58f0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_59f0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5af0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5bf0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5cf0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5df0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ef0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_5ff0_3)(uae_u32 opcode) /* Scc.B (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#endif + +#ifdef PART_6 +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_60ff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(0)) goto endlabel2065; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2065; +{ uae_s32 src = get_ilong(2); + if (!cctrue(0)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2065: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_62ff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(2)) goto endlabel2066; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2066; +{ uae_s32 src = get_ilong(2); + if (!cctrue(2)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2066: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_63ff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(3)) goto endlabel2067; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2067; +{ uae_s32 src = get_ilong(2); + if (!cctrue(3)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2067: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_64ff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(4)) goto endlabel2068; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2068; +{ uae_s32 src = get_ilong(2); + if (!cctrue(4)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2068: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_65ff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(5)) goto endlabel2069; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2069; +{ uae_s32 src = get_ilong(2); + if (!cctrue(5)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2069: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_66ff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(6)) goto endlabel2070; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2070; +{ uae_s32 src = get_ilong(2); + if (!cctrue(6)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2070: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_67ff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(7)) goto endlabel2071; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2071; +{ uae_s32 src = get_ilong(2); + if (!cctrue(7)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2071: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_68ff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(8)) goto endlabel2072; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2072; +{ uae_s32 src = get_ilong(2); + if (!cctrue(8)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2072: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_69ff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(9)) goto endlabel2073; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2073; +{ uae_s32 src = get_ilong(2); + if (!cctrue(9)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2073: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6aff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(10)) goto endlabel2074; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2074; +{ uae_s32 src = get_ilong(2); + if (!cctrue(10)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2074: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6bff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(11)) goto endlabel2075; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2075; +{ uae_s32 src = get_ilong(2); + if (!cctrue(11)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2075: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6cff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(12)) goto endlabel2076; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2076; +{ uae_s32 src = get_ilong(2); + if (!cctrue(12)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2076: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6dff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(13)) goto endlabel2077; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2077; +{ uae_s32 src = get_ilong(2); + if (!cctrue(13)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2077: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6eff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(14)) goto endlabel2078; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2078; +{ uae_s32 src = get_ilong(2); + if (!cctrue(14)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2078: ; + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_6fff_3)(uae_u32 opcode) /* Bcc.L #.L */ +{ + cpuop_begin(); +{ m68k_incpc(2); + if (!cctrue(15)) goto endlabel2079; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2079; +{ uae_s32 src = get_ilong(2); + if (!cctrue(15)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +return; +didnt_jump:; +}}m68k_incpc(6); +endlabel2079: ; + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_8030_3)(uae_u32 opcode) /* OR.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_803b_3)(uae_u32 opcode) /* OR.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8070_3)(uae_u32 opcode) /* OR.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_807b_3)(uae_u32 opcode) /* OR.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80b0_3)(uae_u32 opcode) /* OR.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80bb_3)(uae_u32 opcode) /* OR.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80f0_3)(uae_u32 opcode) /* DIVU.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel2086; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel2086: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_80fb_3)(uae_u32 opcode) /* DIVU.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel2087; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel2087: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8130_3)(uae_u32 opcode) /* OR.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_8170_3)(uae_u32 opcode) /* OR.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81b0_3)(uae_u32 opcode) /* OR.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81f0_3)(uae_u32 opcode) /* DIVS.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel2091; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel2091: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_81fb_3)(uae_u32 opcode) /* DIVS.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +m68k_incpc(4); + if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel2092; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}endlabel2092: ; + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9030_3)(uae_u32 opcode) /* SUB.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_903b_3)(uae_u32 opcode) /* SUB.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9070_3)(uae_u32 opcode) /* SUB.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_907b_3)(uae_u32 opcode) /* SUB.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_90b0_3)(uae_u32 opcode) /* SUB.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_90bb_3)(uae_u32 opcode) /* SUB.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90f0_3)(uae_u32 opcode) /* SUBA.W (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_90fb_3)(uae_u32 opcode) /* SUBA.W (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_9130_3)(uae_u32 opcode) /* SUB.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_9170_3)(uae_u32 opcode) /* SUB.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_91b0_3)(uae_u32 opcode) /* SUB.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91f0_3)(uae_u32 opcode) /* SUBA.L (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_91fb_3)(uae_u32 opcode) /* SUBA.L (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_b030_3)(uae_u32 opcode) /* CMP.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b03b_3)(uae_u32 opcode) /* CMP.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +#endif + +#ifdef PART_7 +void REGPARAM2 CPUFUNC(op_b070_3)(uae_u32 opcode) /* CMP.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b07b_3)(uae_u32 opcode) /* CMP.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0b0_3)(uae_u32 opcode) /* CMP.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0bb_3)(uae_u32 opcode) /* CMP.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0f0_3)(uae_u32 opcode) /* CMPA.W (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b0fb_3)(uae_u32 opcode) /* CMPA.W (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b130_3)(uae_u32 opcode) /* EOR.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b170_3)(uae_u32 opcode) /* EOR.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1b0_3)(uae_u32 opcode) /* EOR.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1f0_3)(uae_u32 opcode) /* CMPA.L (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_b1fb_3)(uae_u32 opcode) /* CMPA.L (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c030_3)(uae_u32 opcode) /* AND.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c03b_3)(uae_u32 opcode) /* AND.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c070_3)(uae_u32 opcode) /* AND.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c07b_3)(uae_u32 opcode) /* AND.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0b0_3)(uae_u32 opcode) /* AND.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0bb_3)(uae_u32 opcode) /* AND.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0f0_3)(uae_u32 opcode) /* MULU.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c0fb_3)(uae_u32 opcode) /* MULU.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c130_3)(uae_u32 opcode) /* AND.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c170_3)(uae_u32 opcode) /* AND.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1b0_3)(uae_u32 opcode) /* AND.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1f0_3)(uae_u32 opcode) /* MULS.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_c1fb_3)(uae_u32 opcode) /* MULS.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d030_3)(uae_u32 opcode) /* ADD.B (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d03b_3)(uae_u32 opcode) /* ADD.B (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d070_3)(uae_u32 opcode) /* ADD.W (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d07b_3)(uae_u32 opcode) /* ADD.W (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d0b0_3)(uae_u32 opcode) /* ADD.L (d8,An,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d0bb_3)(uae_u32 opcode) /* ADD.L (d8,PC,Xn),Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0f0_3)(uae_u32 opcode) /* ADDA.W (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d0fb_3)(uae_u32 opcode) /* ADDA.W (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_d130_3)(uae_u32 opcode) /* ADD.B Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d170_3)(uae_u32 opcode) /* ADD.W Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_d1b0_3)(uae_u32 opcode) /* ADD.L Dn,(d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 1) & 7); +#else + uae_u32 srcreg = ((opcode >> 9) & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 8) & 7; +#else + uae_u32 dstreg = opcode & 7; +#endif +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); + cpuop_end(); +} +#endif + +#ifdef PART_8 +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1f0_3)(uae_u32 opcode) /* ADDA.L (d8,An,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_d1fb_3)(uae_u32 opcode) /* ADDA.L (d8,PC,Xn),An */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 dstreg = (opcode >> 1) & 7; +#else + uae_u32 dstreg = (opcode >> 9) & 7; +#endif +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); + cpuop_end(); +} + +#endif +void REGPARAM2 CPUFUNC(op_e0f0_3)(uae_u32 opcode) /* ASRW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e1f0_3)(uae_u32 opcode) /* ASLW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e2f0_3)(uae_u32 opcode) /* LSRW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e3f0_3)(uae_u32 opcode) /* LSLW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e4f0_3)(uae_u32 opcode) /* ROXRW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e5f0_3)(uae_u32 opcode) /* ROXLW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e6f0_3)(uae_u32 opcode) /* RORW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +void REGPARAM2 CPUFUNC(op_e7f0_3)(uae_u32 opcode) /* ROLW.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(4); + cpuop_end(); +} +#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 +#endif + +#ifdef PART_2 +#endif + +#ifdef PART_3 +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40c0_4)(uae_u32 opcode) /* MVSR2.W Dn */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ MakeSR(); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); +}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40d0_4)(uae_u32 opcode) /* MVSR2.W (An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40d8_4)(uae_u32 opcode) /* MVSR2.W (An)+ */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += 2; + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40e0_4)(uae_u32 opcode) /* MVSR2.W -(An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(2); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40e8_4)(uae_u32 opcode) /* MVSR2.W (d16,An) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40f0_4)(uae_u32 opcode) /* MVSR2.W (d8,An,Xn) */ +{ + cpuop_begin(); +#ifdef HAVE_GET_WORD_UNSWAPPED + uae_u32 srcreg = ((opcode >> 8) & 7); +#else + uae_u32 srcreg = (opcode & 7); +#endif +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40f8_4)(uae_u32 opcode) /* MVSR2.W (xxx).W */ +{ + cpuop_begin(); +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(4); + cpuop_end(); +} + +#endif +#ifndef NOFLAGS +void REGPARAM2 CPUFUNC(op_40f9_4)(uae_u32 opcode) /* MVSR2.W (xxx).L */ +{ + cpuop_begin(); +{{ uaecptr srca = get_ilong(2); + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(6); + cpuop_end(); +} + +#endif +#endif + +#ifdef PART_4 +void REGPARAM2 CPUFUNC(op_4e73_4)(uae_u32 opcode) /* RTE.L */ +{ + cpuop_begin(); +{if (!regs.s) { Exception(8,0); goto endlabel2161; } +{{ uaecptr sra = m68k_areg(regs, 7); +{ uae_s16 sr = get_word(sra); + m68k_areg(regs, 7) += 2; +{ uaecptr pca = m68k_areg(regs, 7); +{ uae_s32 pc = get_long(pca); + m68k_areg(regs, 7) += 4; + regs.sr = sr; m68k_setpc_rte(pc); + MakeFromSR(); +}}}}}}endlabel2161: ; + cpuop_end(); +} +#endif + +#ifdef PART_5 +#endif + +#ifdef PART_6 +#endif + +#ifdef PART_7 +#endif + +#ifdef PART_8 +#endif + diff --git a/src/PSP2/cpustbl.cpp b/src/PSP2/cpustbl.cpp new file mode 100644 index 0000000..87fc85b --- /dev/null +++ b/src/PSP2/cpustbl.cpp @@ -0,0 +1,8720 @@ +#include "sysdeps.h" +#include "m68k.h" +#include "memory.h" +#include "readcpu.h" +#include "newcpu.h" +#include "compiler/compemu.h" +#include "fpu/fpu.h" +#include "cputbl.h" +#define SET_CFLG_ALWAYS(x) SET_CFLG(x) +#define SET_NFLG_ALWAYS(x) SET_NFLG(x) +#define CPUFUNC_FF(x) x##_ff +#define CPUFUNC_NF(x) x##_nf +#define CPUFUNC(x) CPUFUNC_FF(x) +#ifdef NOFLAGS +# include "noflags.h" +#endif +struct cputbl CPUFUNC(op_smalltbl_0)[] = { +{ CPUFUNC(op_0_0), 0, 0 }, /* OR.B #.B,Dn */ +{ CPUFUNC(op_10_0), 0, 16 }, /* OR.B #.B,(An) */ +{ CPUFUNC(op_18_0), 0, 24 }, /* OR.B #.B,(An)+ */ +{ CPUFUNC(op_20_0), 0, 32 }, /* OR.B #.B,-(An) */ +{ CPUFUNC(op_28_0), 0, 40 }, /* OR.B #.B,(d16,An) */ +{ CPUFUNC(op_30_0), 0, 48 }, /* OR.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_38_0), 0, 56 }, /* OR.B #.B,(xxx).W */ +{ CPUFUNC(op_39_0), 0, 57 }, /* OR.B #.B,(xxx).L */ +{ CPUFUNC(op_3c_0), 0, 60 }, /* ORSR.B #.W */ +{ CPUFUNC(op_40_0), 0, 64 }, /* OR.W #.W,Dn */ +{ CPUFUNC(op_50_0), 0, 80 }, /* OR.W #.W,(An) */ +{ CPUFUNC(op_58_0), 0, 88 }, /* OR.W #.W,(An)+ */ +{ CPUFUNC(op_60_0), 0, 96 }, /* OR.W #.W,-(An) */ +{ CPUFUNC(op_68_0), 0, 104 }, /* OR.W #.W,(d16,An) */ +{ CPUFUNC(op_70_0), 0, 112 }, /* OR.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_78_0), 0, 120 }, /* OR.W #.W,(xxx).W */ +{ CPUFUNC(op_79_0), 0, 121 }, /* OR.W #.W,(xxx).L */ +{ CPUFUNC(op_7c_0), 0, 124 }, /* ORSR.W #.W */ +{ CPUFUNC(op_80_0), 0, 128 }, /* OR.L #.L,Dn */ +{ CPUFUNC(op_90_0), 0, 144 }, /* OR.L #.L,(An) */ +{ CPUFUNC(op_98_0), 0, 152 }, /* OR.L #.L,(An)+ */ +{ CPUFUNC(op_a0_0), 0, 160 }, /* OR.L #.L,-(An) */ +{ CPUFUNC(op_a8_0), 0, 168 }, /* OR.L #.L,(d16,An) */ +{ CPUFUNC(op_b0_0), 0, 176 }, /* OR.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_b8_0), 0, 184 }, /* OR.L #.L,(xxx).W */ +{ CPUFUNC(op_b9_0), 0, 185 }, /* OR.L #.L,(xxx).L */ +{ CPUFUNC(op_d0_0), 0, 208 }, /* CHK2.B #.W,(An) */ +{ CPUFUNC(op_e8_0), 0, 232 }, /* CHK2.B #.W,(d16,An) */ +{ CPUFUNC(op_f0_0), 0, 240 }, /* CHK2.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_f8_0), 0, 248 }, /* CHK2.B #.W,(xxx).W */ +{ CPUFUNC(op_f9_0), 0, 249 }, /* CHK2.B #.W,(xxx).L */ +{ CPUFUNC(op_fa_0), 0, 250 }, /* CHK2.B #.W,(d16,PC) */ +{ CPUFUNC(op_fb_0), 0, 251 }, /* CHK2.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_100_0), 0, 256 }, /* BTST.L Dn,Dn */ +{ CPUFUNC_FF(op_108_0), 0, 264 }, /* MVPMR.W (d16,An),Dn */ +{ CPUFUNC(op_110_0), 0, 272 }, /* BTST.B Dn,(An) */ +{ CPUFUNC(op_118_0), 0, 280 }, /* BTST.B Dn,(An)+ */ +{ CPUFUNC(op_120_0), 0, 288 }, /* BTST.B Dn,-(An) */ +{ CPUFUNC(op_128_0), 0, 296 }, /* BTST.B Dn,(d16,An) */ +{ CPUFUNC(op_130_0), 0, 304 }, /* BTST.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_138_0), 0, 312 }, /* BTST.B Dn,(xxx).W */ +{ CPUFUNC(op_139_0), 0, 313 }, /* BTST.B Dn,(xxx).L */ +{ CPUFUNC(op_13a_0), 0, 314 }, /* BTST.B Dn,(d16,PC) */ +{ CPUFUNC(op_13b_0), 0, 315 }, /* BTST.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_13c_0), 0, 316 }, /* BTST.B Dn,#.B */ +{ CPUFUNC(op_140_0), 0, 320 }, /* BCHG.L Dn,Dn */ +{ CPUFUNC_FF(op_148_0), 0, 328 }, /* MVPMR.L (d16,An),Dn */ +{ CPUFUNC(op_150_0), 0, 336 }, /* BCHG.B Dn,(An) */ +{ CPUFUNC(op_158_0), 0, 344 }, /* BCHG.B Dn,(An)+ */ +{ CPUFUNC(op_160_0), 0, 352 }, /* BCHG.B Dn,-(An) */ +{ CPUFUNC(op_168_0), 0, 360 }, /* BCHG.B Dn,(d16,An) */ +{ CPUFUNC(op_170_0), 0, 368 }, /* BCHG.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_178_0), 0, 376 }, /* BCHG.B Dn,(xxx).W */ +{ CPUFUNC(op_179_0), 0, 377 }, /* BCHG.B Dn,(xxx).L */ +{ CPUFUNC(op_17a_0), 0, 378 }, /* BCHG.B Dn,(d16,PC) */ +{ CPUFUNC(op_17b_0), 0, 379 }, /* BCHG.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_180_0), 0, 384 }, /* BCLR.L Dn,Dn */ +{ CPUFUNC_FF(op_188_0), 0, 392 }, /* MVPRM.W Dn,(d16,An) */ +{ CPUFUNC(op_190_0), 0, 400 }, /* BCLR.B Dn,(An) */ +{ CPUFUNC(op_198_0), 0, 408 }, /* BCLR.B Dn,(An)+ */ +{ CPUFUNC(op_1a0_0), 0, 416 }, /* BCLR.B Dn,-(An) */ +{ CPUFUNC(op_1a8_0), 0, 424 }, /* BCLR.B Dn,(d16,An) */ +{ CPUFUNC(op_1b0_0), 0, 432 }, /* BCLR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1b8_0), 0, 440 }, /* BCLR.B Dn,(xxx).W */ +{ CPUFUNC(op_1b9_0), 0, 441 }, /* BCLR.B Dn,(xxx).L */ +{ CPUFUNC(op_1ba_0), 0, 442 }, /* BCLR.B Dn,(d16,PC) */ +{ CPUFUNC(op_1bb_0), 0, 443 }, /* BCLR.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_1c0_0), 0, 448 }, /* BSET.L Dn,Dn */ +{ CPUFUNC_FF(op_1c8_0), 0, 456 }, /* MVPRM.L Dn,(d16,An) */ +{ CPUFUNC(op_1d0_0), 0, 464 }, /* BSET.B Dn,(An) */ +{ CPUFUNC(op_1d8_0), 0, 472 }, /* BSET.B Dn,(An)+ */ +{ CPUFUNC(op_1e0_0), 0, 480 }, /* BSET.B Dn,-(An) */ +{ CPUFUNC(op_1e8_0), 0, 488 }, /* BSET.B Dn,(d16,An) */ +{ CPUFUNC(op_1f0_0), 0, 496 }, /* BSET.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1f8_0), 0, 504 }, /* BSET.B Dn,(xxx).W */ +{ CPUFUNC(op_1f9_0), 0, 505 }, /* BSET.B Dn,(xxx).L */ +{ CPUFUNC(op_1fa_0), 0, 506 }, /* BSET.B Dn,(d16,PC) */ +{ CPUFUNC(op_1fb_0), 0, 507 }, /* BSET.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_200_0), 0, 512 }, /* AND.B #.B,Dn */ +{ CPUFUNC(op_210_0), 0, 528 }, /* AND.B #.B,(An) */ +{ CPUFUNC(op_218_0), 0, 536 }, /* AND.B #.B,(An)+ */ +{ CPUFUNC(op_220_0), 0, 544 }, /* AND.B #.B,-(An) */ +{ CPUFUNC(op_228_0), 0, 552 }, /* AND.B #.B,(d16,An) */ +{ CPUFUNC(op_230_0), 0, 560 }, /* AND.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_238_0), 0, 568 }, /* AND.B #.B,(xxx).W */ +{ CPUFUNC(op_239_0), 0, 569 }, /* AND.B #.B,(xxx).L */ +{ CPUFUNC(op_23c_0), 0, 572 }, /* ANDSR.B #.W */ +{ CPUFUNC(op_240_0), 0, 576 }, /* AND.W #.W,Dn */ +{ CPUFUNC(op_250_0), 0, 592 }, /* AND.W #.W,(An) */ +{ CPUFUNC(op_258_0), 0, 600 }, /* AND.W #.W,(An)+ */ +{ CPUFUNC(op_260_0), 0, 608 }, /* AND.W #.W,-(An) */ +{ CPUFUNC(op_268_0), 0, 616 }, /* AND.W #.W,(d16,An) */ +{ CPUFUNC(op_270_0), 0, 624 }, /* AND.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_278_0), 0, 632 }, /* AND.W #.W,(xxx).W */ +{ CPUFUNC(op_279_0), 0, 633 }, /* AND.W #.W,(xxx).L */ +{ CPUFUNC(op_27c_0), 0, 636 }, /* ANDSR.W #.W */ +{ CPUFUNC(op_280_0), 0, 640 }, /* AND.L #.L,Dn */ +{ CPUFUNC(op_290_0), 0, 656 }, /* AND.L #.L,(An) */ +{ CPUFUNC(op_298_0), 0, 664 }, /* AND.L #.L,(An)+ */ +{ CPUFUNC(op_2a0_0), 0, 672 }, /* AND.L #.L,-(An) */ +{ CPUFUNC(op_2a8_0), 0, 680 }, /* AND.L #.L,(d16,An) */ +{ CPUFUNC(op_2b0_0), 0, 688 }, /* AND.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_2b8_0), 0, 696 }, /* AND.L #.L,(xxx).W */ +{ CPUFUNC(op_2b9_0), 0, 697 }, /* AND.L #.L,(xxx).L */ +{ CPUFUNC(op_2d0_0), 0, 720 }, /* CHK2.W #.W,(An) */ +{ CPUFUNC(op_2e8_0), 0, 744 }, /* CHK2.W #.W,(d16,An) */ +{ CPUFUNC(op_2f0_0), 0, 752 }, /* CHK2.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_2f8_0), 0, 760 }, /* CHK2.W #.W,(xxx).W */ +{ CPUFUNC(op_2f9_0), 0, 761 }, /* CHK2.W #.W,(xxx).L */ +{ CPUFUNC(op_2fa_0), 0, 762 }, /* CHK2.W #.W,(d16,PC) */ +{ CPUFUNC(op_2fb_0), 0, 763 }, /* CHK2.W #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_400_0), 0, 1024 }, /* SUB.B #.B,Dn */ +{ CPUFUNC(op_410_0), 0, 1040 }, /* SUB.B #.B,(An) */ +{ CPUFUNC(op_418_0), 0, 1048 }, /* SUB.B #.B,(An)+ */ +{ CPUFUNC(op_420_0), 0, 1056 }, /* SUB.B #.B,-(An) */ +{ CPUFUNC(op_428_0), 0, 1064 }, /* SUB.B #.B,(d16,An) */ +{ CPUFUNC(op_430_0), 0, 1072 }, /* SUB.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_438_0), 0, 1080 }, /* SUB.B #.B,(xxx).W */ +{ CPUFUNC(op_439_0), 0, 1081 }, /* SUB.B #.B,(xxx).L */ +{ CPUFUNC(op_440_0), 0, 1088 }, /* SUB.W #.W,Dn */ +{ CPUFUNC(op_450_0), 0, 1104 }, /* SUB.W #.W,(An) */ +{ CPUFUNC(op_458_0), 0, 1112 }, /* SUB.W #.W,(An)+ */ +{ CPUFUNC(op_460_0), 0, 1120 }, /* SUB.W #.W,-(An) */ +{ CPUFUNC(op_468_0), 0, 1128 }, /* SUB.W #.W,(d16,An) */ +{ CPUFUNC(op_470_0), 0, 1136 }, /* SUB.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_478_0), 0, 1144 }, /* SUB.W #.W,(xxx).W */ +{ CPUFUNC(op_479_0), 0, 1145 }, /* SUB.W #.W,(xxx).L */ +{ CPUFUNC(op_480_0), 0, 1152 }, /* SUB.L #.L,Dn */ +{ CPUFUNC(op_490_0), 0, 1168 }, /* SUB.L #.L,(An) */ +{ CPUFUNC(op_498_0), 0, 1176 }, /* SUB.L #.L,(An)+ */ +{ CPUFUNC(op_4a0_0), 0, 1184 }, /* SUB.L #.L,-(An) */ +{ CPUFUNC(op_4a8_0), 0, 1192 }, /* SUB.L #.L,(d16,An) */ +{ CPUFUNC(op_4b0_0), 0, 1200 }, /* SUB.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_4b8_0), 0, 1208 }, /* SUB.L #.L,(xxx).W */ +{ CPUFUNC(op_4b9_0), 0, 1209 }, /* SUB.L #.L,(xxx).L */ +{ CPUFUNC(op_4d0_0), 0, 1232 }, /* CHK2.L #.W,(An) */ +{ CPUFUNC(op_4e8_0), 0, 1256 }, /* CHK2.L #.W,(d16,An) */ +{ CPUFUNC(op_4f0_0), 0, 1264 }, /* CHK2.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_4f8_0), 0, 1272 }, /* CHK2.L #.W,(xxx).W */ +{ CPUFUNC(op_4f9_0), 0, 1273 }, /* CHK2.L #.W,(xxx).L */ +{ CPUFUNC(op_4fa_0), 0, 1274 }, /* CHK2.L #.W,(d16,PC) */ +{ CPUFUNC(op_4fb_0), 0, 1275 }, /* CHK2.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_600_0), 0, 1536 }, /* ADD.B #.B,Dn */ +{ CPUFUNC(op_610_0), 0, 1552 }, /* ADD.B #.B,(An) */ +{ CPUFUNC(op_618_0), 0, 1560 }, /* ADD.B #.B,(An)+ */ +{ CPUFUNC(op_620_0), 0, 1568 }, /* ADD.B #.B,-(An) */ +{ CPUFUNC(op_628_0), 0, 1576 }, /* ADD.B #.B,(d16,An) */ +{ CPUFUNC(op_630_0), 0, 1584 }, /* ADD.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_638_0), 0, 1592 }, /* ADD.B #.B,(xxx).W */ +{ CPUFUNC(op_639_0), 0, 1593 }, /* ADD.B #.B,(xxx).L */ +{ CPUFUNC(op_640_0), 0, 1600 }, /* ADD.W #.W,Dn */ +{ CPUFUNC(op_650_0), 0, 1616 }, /* ADD.W #.W,(An) */ +{ CPUFUNC(op_658_0), 0, 1624 }, /* ADD.W #.W,(An)+ */ +{ CPUFUNC(op_660_0), 0, 1632 }, /* ADD.W #.W,-(An) */ +{ CPUFUNC(op_668_0), 0, 1640 }, /* ADD.W #.W,(d16,An) */ +{ CPUFUNC(op_670_0), 0, 1648 }, /* ADD.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_678_0), 0, 1656 }, /* ADD.W #.W,(xxx).W */ +{ CPUFUNC(op_679_0), 0, 1657 }, /* ADD.W #.W,(xxx).L */ +{ CPUFUNC(op_680_0), 0, 1664 }, /* ADD.L #.L,Dn */ +{ CPUFUNC(op_690_0), 0, 1680 }, /* ADD.L #.L,(An) */ +{ CPUFUNC(op_698_0), 0, 1688 }, /* ADD.L #.L,(An)+ */ +{ CPUFUNC(op_6a0_0), 0, 1696 }, /* ADD.L #.L,-(An) */ +{ CPUFUNC(op_6a8_0), 0, 1704 }, /* ADD.L #.L,(d16,An) */ +{ CPUFUNC(op_6b0_0), 0, 1712 }, /* ADD.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_6b8_0), 0, 1720 }, /* ADD.L #.L,(xxx).W */ +{ CPUFUNC(op_6b9_0), 0, 1721 }, /* ADD.L #.L,(xxx).L */ +{ CPUFUNC(op_6c0_0), 0, 1728 }, /* RTM.L Dn */ +{ CPUFUNC(op_6c8_0), 0, 1736 }, /* RTM.L An */ +{ CPUFUNC_FF(op_6d0_0), 0, 1744 }, /* CALLM.L (An) */ +{ CPUFUNC_FF(op_6e8_0), 0, 1768 }, /* CALLM.L (d16,An) */ +{ CPUFUNC_FF(op_6f0_0), 0, 1776 }, /* CALLM.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_6f8_0), 0, 1784 }, /* CALLM.L (xxx).W */ +{ CPUFUNC_FF(op_6f9_0), 0, 1785 }, /* CALLM.L (xxx).L */ +{ CPUFUNC_FF(op_6fa_0), 0, 1786 }, /* CALLM.L (d16,PC) */ +{ CPUFUNC_FF(op_6fb_0), 0, 1787 }, /* CALLM.L (d8,PC,Xn) */ +{ CPUFUNC(op_800_0), 0, 2048 }, /* BTST.L #.W,Dn */ +{ CPUFUNC(op_810_0), 0, 2064 }, /* BTST.B #.W,(An) */ +{ CPUFUNC(op_818_0), 0, 2072 }, /* BTST.B #.W,(An)+ */ +{ CPUFUNC(op_820_0), 0, 2080 }, /* BTST.B #.W,-(An) */ +{ CPUFUNC(op_828_0), 0, 2088 }, /* BTST.B #.W,(d16,An) */ +{ CPUFUNC(op_830_0), 0, 2096 }, /* BTST.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_838_0), 0, 2104 }, /* BTST.B #.W,(xxx).W */ +{ CPUFUNC(op_839_0), 0, 2105 }, /* BTST.B #.W,(xxx).L */ +{ CPUFUNC(op_83a_0), 0, 2106 }, /* BTST.B #.W,(d16,PC) */ +{ CPUFUNC(op_83b_0), 0, 2107 }, /* BTST.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_83c_0), 0, 2108 }, /* BTST.B #.W,#.B */ +{ CPUFUNC(op_840_0), 0, 2112 }, /* BCHG.L #.W,Dn */ +{ CPUFUNC(op_850_0), 0, 2128 }, /* BCHG.B #.W,(An) */ +{ CPUFUNC(op_858_0), 0, 2136 }, /* BCHG.B #.W,(An)+ */ +{ CPUFUNC(op_860_0), 0, 2144 }, /* BCHG.B #.W,-(An) */ +{ CPUFUNC(op_868_0), 0, 2152 }, /* BCHG.B #.W,(d16,An) */ +{ CPUFUNC(op_870_0), 0, 2160 }, /* BCHG.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_878_0), 0, 2168 }, /* BCHG.B #.W,(xxx).W */ +{ CPUFUNC(op_879_0), 0, 2169 }, /* BCHG.B #.W,(xxx).L */ +{ CPUFUNC(op_87a_0), 0, 2170 }, /* BCHG.B #.W,(d16,PC) */ +{ CPUFUNC(op_87b_0), 0, 2171 }, /* BCHG.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_880_0), 0, 2176 }, /* BCLR.L #.W,Dn */ +{ CPUFUNC(op_890_0), 0, 2192 }, /* BCLR.B #.W,(An) */ +{ CPUFUNC(op_898_0), 0, 2200 }, /* BCLR.B #.W,(An)+ */ +{ CPUFUNC(op_8a0_0), 0, 2208 }, /* BCLR.B #.W,-(An) */ +{ CPUFUNC(op_8a8_0), 0, 2216 }, /* BCLR.B #.W,(d16,An) */ +{ CPUFUNC(op_8b0_0), 0, 2224 }, /* BCLR.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_8b8_0), 0, 2232 }, /* BCLR.B #.W,(xxx).W */ +{ CPUFUNC(op_8b9_0), 0, 2233 }, /* BCLR.B #.W,(xxx).L */ +{ CPUFUNC(op_8ba_0), 0, 2234 }, /* BCLR.B #.W,(d16,PC) */ +{ CPUFUNC(op_8bb_0), 0, 2235 }, /* BCLR.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_8c0_0), 0, 2240 }, /* BSET.L #.W,Dn */ +{ CPUFUNC(op_8d0_0), 0, 2256 }, /* BSET.B #.W,(An) */ +{ CPUFUNC(op_8d8_0), 0, 2264 }, /* BSET.B #.W,(An)+ */ +{ CPUFUNC(op_8e0_0), 0, 2272 }, /* BSET.B #.W,-(An) */ +{ CPUFUNC(op_8e8_0), 0, 2280 }, /* BSET.B #.W,(d16,An) */ +{ CPUFUNC(op_8f0_0), 0, 2288 }, /* BSET.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_8f8_0), 0, 2296 }, /* BSET.B #.W,(xxx).W */ +{ CPUFUNC(op_8f9_0), 0, 2297 }, /* BSET.B #.W,(xxx).L */ +{ CPUFUNC(op_8fa_0), 0, 2298 }, /* BSET.B #.W,(d16,PC) */ +{ CPUFUNC(op_8fb_0), 0, 2299 }, /* BSET.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_a00_0), 0, 2560 }, /* EOR.B #.B,Dn */ +{ CPUFUNC(op_a10_0), 0, 2576 }, /* EOR.B #.B,(An) */ +{ CPUFUNC(op_a18_0), 0, 2584 }, /* EOR.B #.B,(An)+ */ +{ CPUFUNC(op_a20_0), 0, 2592 }, /* EOR.B #.B,-(An) */ +{ CPUFUNC(op_a28_0), 0, 2600 }, /* EOR.B #.B,(d16,An) */ +{ CPUFUNC(op_a30_0), 0, 2608 }, /* EOR.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_a38_0), 0, 2616 }, /* EOR.B #.B,(xxx).W */ +{ CPUFUNC(op_a39_0), 0, 2617 }, /* EOR.B #.B,(xxx).L */ +{ CPUFUNC(op_a3c_0), 0, 2620 }, /* EORSR.B #.W */ +{ CPUFUNC(op_a40_0), 0, 2624 }, /* EOR.W #.W,Dn */ +{ CPUFUNC(op_a50_0), 0, 2640 }, /* EOR.W #.W,(An) */ +{ CPUFUNC(op_a58_0), 0, 2648 }, /* EOR.W #.W,(An)+ */ +{ CPUFUNC(op_a60_0), 0, 2656 }, /* EOR.W #.W,-(An) */ +{ CPUFUNC(op_a68_0), 0, 2664 }, /* EOR.W #.W,(d16,An) */ +{ CPUFUNC(op_a70_0), 0, 2672 }, /* EOR.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_a78_0), 0, 2680 }, /* EOR.W #.W,(xxx).W */ +{ CPUFUNC(op_a79_0), 0, 2681 }, /* EOR.W #.W,(xxx).L */ +{ CPUFUNC(op_a7c_0), 0, 2684 }, /* EORSR.W #.W */ +{ CPUFUNC(op_a80_0), 0, 2688 }, /* EOR.L #.L,Dn */ +{ CPUFUNC(op_a90_0), 0, 2704 }, /* EOR.L #.L,(An) */ +{ CPUFUNC(op_a98_0), 0, 2712 }, /* EOR.L #.L,(An)+ */ +{ CPUFUNC(op_aa0_0), 0, 2720 }, /* EOR.L #.L,-(An) */ +{ CPUFUNC(op_aa8_0), 0, 2728 }, /* EOR.L #.L,(d16,An) */ +{ CPUFUNC(op_ab0_0), 0, 2736 }, /* EOR.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_ab8_0), 0, 2744 }, /* EOR.L #.L,(xxx).W */ +{ CPUFUNC(op_ab9_0), 0, 2745 }, /* EOR.L #.L,(xxx).L */ +{ CPUFUNC(op_ad0_0), 0, 2768 }, /* CAS.B #.W,(An) */ +{ CPUFUNC(op_ad8_0), 0, 2776 }, /* CAS.B #.W,(An)+ */ +{ CPUFUNC(op_ae0_0), 0, 2784 }, /* CAS.B #.W,-(An) */ +{ CPUFUNC(op_ae8_0), 0, 2792 }, /* CAS.B #.W,(d16,An) */ +{ CPUFUNC(op_af0_0), 0, 2800 }, /* CAS.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_af8_0), 0, 2808 }, /* CAS.B #.W,(xxx).W */ +{ CPUFUNC(op_af9_0), 0, 2809 }, /* CAS.B #.W,(xxx).L */ +{ CPUFUNC(op_c00_0), 0, 3072 }, /* CMP.B #.B,Dn */ +{ CPUFUNC(op_c10_0), 0, 3088 }, /* CMP.B #.B,(An) */ +{ CPUFUNC(op_c18_0), 0, 3096 }, /* CMP.B #.B,(An)+ */ +{ CPUFUNC(op_c20_0), 0, 3104 }, /* CMP.B #.B,-(An) */ +{ CPUFUNC(op_c28_0), 0, 3112 }, /* CMP.B #.B,(d16,An) */ +{ CPUFUNC(op_c30_0), 0, 3120 }, /* CMP.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_c38_0), 0, 3128 }, /* CMP.B #.B,(xxx).W */ +{ CPUFUNC(op_c39_0), 0, 3129 }, /* CMP.B #.B,(xxx).L */ +{ CPUFUNC(op_c3a_0), 0, 3130 }, /* CMP.B #.B,(d16,PC) */ +{ CPUFUNC(op_c3b_0), 0, 3131 }, /* CMP.B #.B,(d8,PC,Xn) */ +{ CPUFUNC(op_c40_0), 0, 3136 }, /* CMP.W #.W,Dn */ +{ CPUFUNC(op_c50_0), 0, 3152 }, /* CMP.W #.W,(An) */ +{ CPUFUNC(op_c58_0), 0, 3160 }, /* CMP.W #.W,(An)+ */ +{ CPUFUNC(op_c60_0), 0, 3168 }, /* CMP.W #.W,-(An) */ +{ CPUFUNC(op_c68_0), 0, 3176 }, /* CMP.W #.W,(d16,An) */ +{ CPUFUNC(op_c70_0), 0, 3184 }, /* CMP.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_c78_0), 0, 3192 }, /* CMP.W #.W,(xxx).W */ +{ CPUFUNC(op_c79_0), 0, 3193 }, /* CMP.W #.W,(xxx).L */ +{ CPUFUNC(op_c7a_0), 0, 3194 }, /* CMP.W #.W,(d16,PC) */ +{ CPUFUNC(op_c7b_0), 0, 3195 }, /* CMP.W #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_c80_0), 0, 3200 }, /* CMP.L #.L,Dn */ +{ CPUFUNC(op_c90_0), 0, 3216 }, /* CMP.L #.L,(An) */ +{ CPUFUNC(op_c98_0), 0, 3224 }, /* CMP.L #.L,(An)+ */ +{ CPUFUNC(op_ca0_0), 0, 3232 }, /* CMP.L #.L,-(An) */ +{ CPUFUNC(op_ca8_0), 0, 3240 }, /* CMP.L #.L,(d16,An) */ +{ CPUFUNC(op_cb0_0), 0, 3248 }, /* CMP.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_cb8_0), 0, 3256 }, /* CMP.L #.L,(xxx).W */ +{ CPUFUNC(op_cb9_0), 0, 3257 }, /* CMP.L #.L,(xxx).L */ +{ CPUFUNC(op_cba_0), 0, 3258 }, /* CMP.L #.L,(d16,PC) */ +{ CPUFUNC(op_cbb_0), 0, 3259 }, /* CMP.L #.L,(d8,PC,Xn) */ +{ CPUFUNC(op_cd0_0), 0, 3280 }, /* CAS.W #.W,(An) */ +{ CPUFUNC(op_cd8_0), 0, 3288 }, /* CAS.W #.W,(An)+ */ +{ CPUFUNC(op_ce0_0), 0, 3296 }, /* CAS.W #.W,-(An) */ +{ CPUFUNC(op_ce8_0), 0, 3304 }, /* CAS.W #.W,(d16,An) */ +{ CPUFUNC(op_cf0_0), 0, 3312 }, /* CAS.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_cf8_0), 0, 3320 }, /* CAS.W #.W,(xxx).W */ +{ CPUFUNC(op_cf9_0), 0, 3321 }, /* CAS.W #.W,(xxx).L */ +{ CPUFUNC(op_cfc_0), 0, 3324 }, /* CAS2.W #.L */ +{ CPUFUNC_FF(op_e10_0), 0, 3600 }, /* MOVES.B #.W,(An) */ +{ CPUFUNC_FF(op_e18_0), 0, 3608 }, /* MOVES.B #.W,(An)+ */ +{ CPUFUNC_FF(op_e20_0), 0, 3616 }, /* MOVES.B #.W,-(An) */ +{ CPUFUNC_FF(op_e28_0), 0, 3624 }, /* MOVES.B #.W,(d16,An) */ +{ CPUFUNC_FF(op_e30_0), 0, 3632 }, /* MOVES.B #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_e38_0), 0, 3640 }, /* MOVES.B #.W,(xxx).W */ +{ CPUFUNC_FF(op_e39_0), 0, 3641 }, /* MOVES.B #.W,(xxx).L */ +{ CPUFUNC_FF(op_e50_0), 0, 3664 }, /* MOVES.W #.W,(An) */ +{ CPUFUNC_FF(op_e58_0), 0, 3672 }, /* MOVES.W #.W,(An)+ */ +{ CPUFUNC_FF(op_e60_0), 0, 3680 }, /* MOVES.W #.W,-(An) */ +{ CPUFUNC_FF(op_e68_0), 0, 3688 }, /* MOVES.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_e70_0), 0, 3696 }, /* MOVES.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_e78_0), 0, 3704 }, /* MOVES.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_e79_0), 0, 3705 }, /* MOVES.W #.W,(xxx).L */ +{ CPUFUNC_FF(op_e90_0), 0, 3728 }, /* MOVES.L #.W,(An) */ +{ CPUFUNC_FF(op_e98_0), 0, 3736 }, /* MOVES.L #.W,(An)+ */ +{ CPUFUNC_FF(op_ea0_0), 0, 3744 }, /* MOVES.L #.W,-(An) */ +{ CPUFUNC_FF(op_ea8_0), 0, 3752 }, /* MOVES.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_eb0_0), 0, 3760 }, /* MOVES.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_eb8_0), 0, 3768 }, /* MOVES.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_eb9_0), 0, 3769 }, /* MOVES.L #.W,(xxx).L */ +{ CPUFUNC(op_ed0_0), 0, 3792 }, /* CAS.L #.W,(An) */ +{ CPUFUNC(op_ed8_0), 0, 3800 }, /* CAS.L #.W,(An)+ */ +{ CPUFUNC(op_ee0_0), 0, 3808 }, /* CAS.L #.W,-(An) */ +{ CPUFUNC(op_ee8_0), 0, 3816 }, /* CAS.L #.W,(d16,An) */ +{ CPUFUNC(op_ef0_0), 0, 3824 }, /* CAS.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_ef8_0), 0, 3832 }, /* CAS.L #.W,(xxx).W */ +{ CPUFUNC(op_ef9_0), 0, 3833 }, /* CAS.L #.W,(xxx).L */ +{ CPUFUNC(op_efc_0), 0, 3836 }, /* CAS2.L #.L */ +{ CPUFUNC(op_1000_0), 0, 4096 }, /* MOVE.B Dn,Dn */ +{ CPUFUNC(op_1010_0), 0, 4112 }, /* MOVE.B (An),Dn */ +{ CPUFUNC(op_1018_0), 0, 4120 }, /* MOVE.B (An)+,Dn */ +{ CPUFUNC(op_1020_0), 0, 4128 }, /* MOVE.B -(An),Dn */ +{ CPUFUNC(op_1028_0), 0, 4136 }, /* MOVE.B (d16,An),Dn */ +{ CPUFUNC(op_1030_0), 0, 4144 }, /* MOVE.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_1038_0), 0, 4152 }, /* MOVE.B (xxx).W,Dn */ +{ CPUFUNC(op_1039_0), 0, 4153 }, /* MOVE.B (xxx).L,Dn */ +{ CPUFUNC(op_103a_0), 0, 4154 }, /* MOVE.B (d16,PC),Dn */ +{ CPUFUNC(op_103b_0), 0, 4155 }, /* MOVE.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_103c_0), 0, 4156 }, /* MOVE.B #.B,Dn */ +{ CPUFUNC(op_1080_0), 0, 4224 }, /* MOVE.B Dn,(An) */ +{ CPUFUNC(op_1090_0), 0, 4240 }, /* MOVE.B (An),(An) */ +{ CPUFUNC(op_1098_0), 0, 4248 }, /* MOVE.B (An)+,(An) */ +{ CPUFUNC(op_10a0_0), 0, 4256 }, /* MOVE.B -(An),(An) */ +{ CPUFUNC(op_10a8_0), 0, 4264 }, /* MOVE.B (d16,An),(An) */ +{ CPUFUNC(op_10b0_0), 0, 4272 }, /* MOVE.B (d8,An,Xn),(An) */ +{ CPUFUNC(op_10b8_0), 0, 4280 }, /* MOVE.B (xxx).W,(An) */ +{ CPUFUNC(op_10b9_0), 0, 4281 }, /* MOVE.B (xxx).L,(An) */ +{ CPUFUNC(op_10ba_0), 0, 4282 }, /* MOVE.B (d16,PC),(An) */ +{ CPUFUNC(op_10bb_0), 0, 4283 }, /* MOVE.B (d8,PC,Xn),(An) */ +{ CPUFUNC(op_10bc_0), 0, 4284 }, /* MOVE.B #.B,(An) */ +{ CPUFUNC(op_10c0_0), 0, 4288 }, /* MOVE.B Dn,(An)+ */ +{ CPUFUNC(op_10d0_0), 0, 4304 }, /* MOVE.B (An),(An)+ */ +{ CPUFUNC(op_10d8_0), 0, 4312 }, /* MOVE.B (An)+,(An)+ */ +{ CPUFUNC(op_10e0_0), 0, 4320 }, /* MOVE.B -(An),(An)+ */ +{ CPUFUNC(op_10e8_0), 0, 4328 }, /* MOVE.B (d16,An),(An)+ */ +{ CPUFUNC(op_10f0_0), 0, 4336 }, /* MOVE.B (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_10f8_0), 0, 4344 }, /* MOVE.B (xxx).W,(An)+ */ +{ CPUFUNC(op_10f9_0), 0, 4345 }, /* MOVE.B (xxx).L,(An)+ */ +{ CPUFUNC(op_10fa_0), 0, 4346 }, /* MOVE.B (d16,PC),(An)+ */ +{ CPUFUNC(op_10fb_0), 0, 4347 }, /* MOVE.B (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_10fc_0), 0, 4348 }, /* MOVE.B #.B,(An)+ */ +{ CPUFUNC(op_1100_0), 0, 4352 }, /* MOVE.B Dn,-(An) */ +{ CPUFUNC(op_1110_0), 0, 4368 }, /* MOVE.B (An),-(An) */ +{ CPUFUNC(op_1118_0), 0, 4376 }, /* MOVE.B (An)+,-(An) */ +{ CPUFUNC(op_1120_0), 0, 4384 }, /* MOVE.B -(An),-(An) */ +{ CPUFUNC(op_1128_0), 0, 4392 }, /* MOVE.B (d16,An),-(An) */ +{ CPUFUNC(op_1130_0), 0, 4400 }, /* MOVE.B (d8,An,Xn),-(An) */ +{ CPUFUNC(op_1138_0), 0, 4408 }, /* MOVE.B (xxx).W,-(An) */ +{ CPUFUNC(op_1139_0), 0, 4409 }, /* MOVE.B (xxx).L,-(An) */ +{ CPUFUNC(op_113a_0), 0, 4410 }, /* MOVE.B (d16,PC),-(An) */ +{ CPUFUNC(op_113b_0), 0, 4411 }, /* MOVE.B (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_113c_0), 0, 4412 }, /* MOVE.B #.B,-(An) */ +{ CPUFUNC(op_1140_0), 0, 4416 }, /* MOVE.B Dn,(d16,An) */ +{ CPUFUNC(op_1150_0), 0, 4432 }, /* MOVE.B (An),(d16,An) */ +{ CPUFUNC(op_1158_0), 0, 4440 }, /* MOVE.B (An)+,(d16,An) */ +{ CPUFUNC(op_1160_0), 0, 4448 }, /* MOVE.B -(An),(d16,An) */ +{ CPUFUNC(op_1168_0), 0, 4456 }, /* MOVE.B (d16,An),(d16,An) */ +{ CPUFUNC(op_1170_0), 0, 4464 }, /* MOVE.B (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_1178_0), 0, 4472 }, /* MOVE.B (xxx).W,(d16,An) */ +{ CPUFUNC(op_1179_0), 0, 4473 }, /* MOVE.B (xxx).L,(d16,An) */ +{ CPUFUNC(op_117a_0), 0, 4474 }, /* MOVE.B (d16,PC),(d16,An) */ +{ CPUFUNC(op_117b_0), 0, 4475 }, /* MOVE.B (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_117c_0), 0, 4476 }, /* MOVE.B #.B,(d16,An) */ +{ CPUFUNC(op_1180_0), 0, 4480 }, /* MOVE.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1190_0), 0, 4496 }, /* MOVE.B (An),(d8,An,Xn) */ +{ CPUFUNC(op_1198_0), 0, 4504 }, /* MOVE.B (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_11a0_0), 0, 4512 }, /* MOVE.B -(An),(d8,An,Xn) */ +{ CPUFUNC(op_11a8_0), 0, 4520 }, /* MOVE.B (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_11b0_0), 0, 4528 }, /* MOVE.B (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_11b8_0), 0, 4536 }, /* MOVE.B (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_11b9_0), 0, 4537 }, /* MOVE.B (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_11ba_0), 0, 4538 }, /* MOVE.B (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_11bb_0), 0, 4539 }, /* MOVE.B (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_11bc_0), 0, 4540 }, /* MOVE.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_11c0_0), 0, 4544 }, /* MOVE.B Dn,(xxx).W */ +{ CPUFUNC(op_11d0_0), 0, 4560 }, /* MOVE.B (An),(xxx).W */ +{ CPUFUNC(op_11d8_0), 0, 4568 }, /* MOVE.B (An)+,(xxx).W */ +{ CPUFUNC(op_11e0_0), 0, 4576 }, /* MOVE.B -(An),(xxx).W */ +{ CPUFUNC(op_11e8_0), 0, 4584 }, /* MOVE.B (d16,An),(xxx).W */ +{ CPUFUNC(op_11f0_0), 0, 4592 }, /* MOVE.B (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_11f8_0), 0, 4600 }, /* MOVE.B (xxx).W,(xxx).W */ +{ CPUFUNC(op_11f9_0), 0, 4601 }, /* MOVE.B (xxx).L,(xxx).W */ +{ CPUFUNC(op_11fa_0), 0, 4602 }, /* MOVE.B (d16,PC),(xxx).W */ +{ CPUFUNC(op_11fb_0), 0, 4603 }, /* MOVE.B (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_11fc_0), 0, 4604 }, /* MOVE.B #.B,(xxx).W */ +{ CPUFUNC(op_13c0_0), 0, 5056 }, /* MOVE.B Dn,(xxx).L */ +{ CPUFUNC(op_13d0_0), 0, 5072 }, /* MOVE.B (An),(xxx).L */ +{ CPUFUNC(op_13d8_0), 0, 5080 }, /* MOVE.B (An)+,(xxx).L */ +{ CPUFUNC(op_13e0_0), 0, 5088 }, /* MOVE.B -(An),(xxx).L */ +{ CPUFUNC(op_13e8_0), 0, 5096 }, /* MOVE.B (d16,An),(xxx).L */ +{ CPUFUNC(op_13f0_0), 0, 5104 }, /* MOVE.B (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_13f8_0), 0, 5112 }, /* MOVE.B (xxx).W,(xxx).L */ +{ CPUFUNC(op_13f9_0), 0, 5113 }, /* MOVE.B (xxx).L,(xxx).L */ +{ CPUFUNC(op_13fa_0), 0, 5114 }, /* MOVE.B (d16,PC),(xxx).L */ +{ CPUFUNC(op_13fb_0), 0, 5115 }, /* MOVE.B (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_13fc_0), 0, 5116 }, /* MOVE.B #.B,(xxx).L */ +{ CPUFUNC(op_2000_0), 0, 8192 }, /* MOVE.L Dn,Dn */ +{ CPUFUNC(op_2008_0), 0, 8200 }, /* MOVE.L An,Dn */ +{ CPUFUNC(op_2010_0), 0, 8208 }, /* MOVE.L (An),Dn */ +{ CPUFUNC(op_2018_0), 0, 8216 }, /* MOVE.L (An)+,Dn */ +{ CPUFUNC(op_2020_0), 0, 8224 }, /* MOVE.L -(An),Dn */ +{ CPUFUNC(op_2028_0), 0, 8232 }, /* MOVE.L (d16,An),Dn */ +{ CPUFUNC(op_2030_0), 0, 8240 }, /* MOVE.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_2038_0), 0, 8248 }, /* MOVE.L (xxx).W,Dn */ +{ CPUFUNC(op_2039_0), 0, 8249 }, /* MOVE.L (xxx).L,Dn */ +{ CPUFUNC(op_203a_0), 0, 8250 }, /* MOVE.L (d16,PC),Dn */ +{ CPUFUNC(op_203b_0), 0, 8251 }, /* MOVE.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_203c_0), 0, 8252 }, /* MOVE.L #.L,Dn */ +{ CPUFUNC_FF(op_2040_0), 0, 8256 }, /* MOVEA.L Dn,An */ +{ CPUFUNC_FF(op_2048_0), 0, 8264 }, /* MOVEA.L An,An */ +{ CPUFUNC_FF(op_2050_0), 0, 8272 }, /* MOVEA.L (An),An */ +{ CPUFUNC_FF(op_2058_0), 0, 8280 }, /* MOVEA.L (An)+,An */ +{ CPUFUNC_FF(op_2060_0), 0, 8288 }, /* MOVEA.L -(An),An */ +{ CPUFUNC_FF(op_2068_0), 0, 8296 }, /* MOVEA.L (d16,An),An */ +{ CPUFUNC_FF(op_2070_0), 0, 8304 }, /* MOVEA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_2078_0), 0, 8312 }, /* MOVEA.L (xxx).W,An */ +{ CPUFUNC_FF(op_2079_0), 0, 8313 }, /* MOVEA.L (xxx).L,An */ +{ CPUFUNC_FF(op_207a_0), 0, 8314 }, /* MOVEA.L (d16,PC),An */ +{ CPUFUNC_FF(op_207b_0), 0, 8315 }, /* MOVEA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_207c_0), 0, 8316 }, /* MOVEA.L #.L,An */ +{ CPUFUNC(op_2080_0), 0, 8320 }, /* MOVE.L Dn,(An) */ +{ CPUFUNC(op_2088_0), 0, 8328 }, /* MOVE.L An,(An) */ +{ CPUFUNC(op_2090_0), 0, 8336 }, /* MOVE.L (An),(An) */ +{ CPUFUNC(op_2098_0), 0, 8344 }, /* MOVE.L (An)+,(An) */ +{ CPUFUNC(op_20a0_0), 0, 8352 }, /* MOVE.L -(An),(An) */ +{ CPUFUNC(op_20a8_0), 0, 8360 }, /* MOVE.L (d16,An),(An) */ +{ CPUFUNC(op_20b0_0), 0, 8368 }, /* MOVE.L (d8,An,Xn),(An) */ +{ CPUFUNC(op_20b8_0), 0, 8376 }, /* MOVE.L (xxx).W,(An) */ +{ CPUFUNC(op_20b9_0), 0, 8377 }, /* MOVE.L (xxx).L,(An) */ +{ CPUFUNC(op_20ba_0), 0, 8378 }, /* MOVE.L (d16,PC),(An) */ +{ CPUFUNC(op_20bb_0), 0, 8379 }, /* MOVE.L (d8,PC,Xn),(An) */ +{ CPUFUNC(op_20bc_0), 0, 8380 }, /* MOVE.L #.L,(An) */ +{ CPUFUNC(op_20c0_0), 0, 8384 }, /* MOVE.L Dn,(An)+ */ +{ CPUFUNC(op_20c8_0), 0, 8392 }, /* MOVE.L An,(An)+ */ +{ CPUFUNC(op_20d0_0), 0, 8400 }, /* MOVE.L (An),(An)+ */ +{ CPUFUNC(op_20d8_0), 0, 8408 }, /* MOVE.L (An)+,(An)+ */ +{ CPUFUNC(op_20e0_0), 0, 8416 }, /* MOVE.L -(An),(An)+ */ +{ CPUFUNC(op_20e8_0), 0, 8424 }, /* MOVE.L (d16,An),(An)+ */ +{ CPUFUNC(op_20f0_0), 0, 8432 }, /* MOVE.L (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_20f8_0), 0, 8440 }, /* MOVE.L (xxx).W,(An)+ */ +{ CPUFUNC(op_20f9_0), 0, 8441 }, /* MOVE.L (xxx).L,(An)+ */ +{ CPUFUNC(op_20fa_0), 0, 8442 }, /* MOVE.L (d16,PC),(An)+ */ +{ CPUFUNC(op_20fb_0), 0, 8443 }, /* MOVE.L (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_20fc_0), 0, 8444 }, /* MOVE.L #.L,(An)+ */ +{ CPUFUNC(op_2100_0), 0, 8448 }, /* MOVE.L Dn,-(An) */ +{ CPUFUNC(op_2108_0), 0, 8456 }, /* MOVE.L An,-(An) */ +{ CPUFUNC(op_2110_0), 0, 8464 }, /* MOVE.L (An),-(An) */ +{ CPUFUNC(op_2118_0), 0, 8472 }, /* MOVE.L (An)+,-(An) */ +{ CPUFUNC(op_2120_0), 0, 8480 }, /* MOVE.L -(An),-(An) */ +{ CPUFUNC(op_2128_0), 0, 8488 }, /* MOVE.L (d16,An),-(An) */ +{ CPUFUNC(op_2130_0), 0, 8496 }, /* MOVE.L (d8,An,Xn),-(An) */ +{ CPUFUNC(op_2138_0), 0, 8504 }, /* MOVE.L (xxx).W,-(An) */ +{ CPUFUNC(op_2139_0), 0, 8505 }, /* MOVE.L (xxx).L,-(An) */ +{ CPUFUNC(op_213a_0), 0, 8506 }, /* MOVE.L (d16,PC),-(An) */ +{ CPUFUNC(op_213b_0), 0, 8507 }, /* MOVE.L (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_213c_0), 0, 8508 }, /* MOVE.L #.L,-(An) */ +{ CPUFUNC(op_2140_0), 0, 8512 }, /* MOVE.L Dn,(d16,An) */ +{ CPUFUNC(op_2148_0), 0, 8520 }, /* MOVE.L An,(d16,An) */ +{ CPUFUNC(op_2150_0), 0, 8528 }, /* MOVE.L (An),(d16,An) */ +{ CPUFUNC(op_2158_0), 0, 8536 }, /* MOVE.L (An)+,(d16,An) */ +{ CPUFUNC(op_2160_0), 0, 8544 }, /* MOVE.L -(An),(d16,An) */ +{ CPUFUNC(op_2168_0), 0, 8552 }, /* MOVE.L (d16,An),(d16,An) */ +{ CPUFUNC(op_2170_0), 0, 8560 }, /* MOVE.L (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_2178_0), 0, 8568 }, /* MOVE.L (xxx).W,(d16,An) */ +{ CPUFUNC(op_2179_0), 0, 8569 }, /* MOVE.L (xxx).L,(d16,An) */ +{ CPUFUNC(op_217a_0), 0, 8570 }, /* MOVE.L (d16,PC),(d16,An) */ +{ CPUFUNC(op_217b_0), 0, 8571 }, /* MOVE.L (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_217c_0), 0, 8572 }, /* MOVE.L #.L,(d16,An) */ +{ CPUFUNC(op_2180_0), 0, 8576 }, /* MOVE.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_2188_0), 0, 8584 }, /* MOVE.L An,(d8,An,Xn) */ +{ CPUFUNC(op_2190_0), 0, 8592 }, /* MOVE.L (An),(d8,An,Xn) */ +{ CPUFUNC(op_2198_0), 0, 8600 }, /* MOVE.L (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_21a0_0), 0, 8608 }, /* MOVE.L -(An),(d8,An,Xn) */ +{ CPUFUNC(op_21a8_0), 0, 8616 }, /* MOVE.L (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_21b0_0), 0, 8624 }, /* MOVE.L (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_21b8_0), 0, 8632 }, /* MOVE.L (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_21b9_0), 0, 8633 }, /* MOVE.L (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_21ba_0), 0, 8634 }, /* MOVE.L (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_21bb_0), 0, 8635 }, /* MOVE.L (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_21bc_0), 0, 8636 }, /* MOVE.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_21c0_0), 0, 8640 }, /* MOVE.L Dn,(xxx).W */ +{ CPUFUNC(op_21c8_0), 0, 8648 }, /* MOVE.L An,(xxx).W */ +{ CPUFUNC(op_21d0_0), 0, 8656 }, /* MOVE.L (An),(xxx).W */ +{ CPUFUNC(op_21d8_0), 0, 8664 }, /* MOVE.L (An)+,(xxx).W */ +{ CPUFUNC(op_21e0_0), 0, 8672 }, /* MOVE.L -(An),(xxx).W */ +{ CPUFUNC(op_21e8_0), 0, 8680 }, /* MOVE.L (d16,An),(xxx).W */ +{ CPUFUNC(op_21f0_0), 0, 8688 }, /* MOVE.L (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_21f8_0), 0, 8696 }, /* MOVE.L (xxx).W,(xxx).W */ +{ CPUFUNC(op_21f9_0), 0, 8697 }, /* MOVE.L (xxx).L,(xxx).W */ +{ CPUFUNC(op_21fa_0), 0, 8698 }, /* MOVE.L (d16,PC),(xxx).W */ +{ CPUFUNC(op_21fb_0), 0, 8699 }, /* MOVE.L (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_21fc_0), 0, 8700 }, /* MOVE.L #.L,(xxx).W */ +{ CPUFUNC(op_23c0_0), 0, 9152 }, /* MOVE.L Dn,(xxx).L */ +{ CPUFUNC(op_23c8_0), 0, 9160 }, /* MOVE.L An,(xxx).L */ +{ CPUFUNC(op_23d0_0), 0, 9168 }, /* MOVE.L (An),(xxx).L */ +{ CPUFUNC(op_23d8_0), 0, 9176 }, /* MOVE.L (An)+,(xxx).L */ +{ CPUFUNC(op_23e0_0), 0, 9184 }, /* MOVE.L -(An),(xxx).L */ +{ CPUFUNC(op_23e8_0), 0, 9192 }, /* MOVE.L (d16,An),(xxx).L */ +{ CPUFUNC(op_23f0_0), 0, 9200 }, /* MOVE.L (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_23f8_0), 0, 9208 }, /* MOVE.L (xxx).W,(xxx).L */ +{ CPUFUNC(op_23f9_0), 0, 9209 }, /* MOVE.L (xxx).L,(xxx).L */ +{ CPUFUNC(op_23fa_0), 0, 9210 }, /* MOVE.L (d16,PC),(xxx).L */ +{ CPUFUNC(op_23fb_0), 0, 9211 }, /* MOVE.L (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_23fc_0), 0, 9212 }, /* MOVE.L #.L,(xxx).L */ +{ CPUFUNC(op_3000_0), 0, 12288 }, /* MOVE.W Dn,Dn */ +{ CPUFUNC(op_3008_0), 0, 12296 }, /* MOVE.W An,Dn */ +{ CPUFUNC(op_3010_0), 0, 12304 }, /* MOVE.W (An),Dn */ +{ CPUFUNC(op_3018_0), 0, 12312 }, /* MOVE.W (An)+,Dn */ +{ CPUFUNC(op_3020_0), 0, 12320 }, /* MOVE.W -(An),Dn */ +{ CPUFUNC(op_3028_0), 0, 12328 }, /* MOVE.W (d16,An),Dn */ +{ CPUFUNC(op_3030_0), 0, 12336 }, /* MOVE.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_3038_0), 0, 12344 }, /* MOVE.W (xxx).W,Dn */ +{ CPUFUNC(op_3039_0), 0, 12345 }, /* MOVE.W (xxx).L,Dn */ +{ CPUFUNC(op_303a_0), 0, 12346 }, /* MOVE.W (d16,PC),Dn */ +{ CPUFUNC(op_303b_0), 0, 12347 }, /* MOVE.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_303c_0), 0, 12348 }, /* MOVE.W #.W,Dn */ +{ CPUFUNC_FF(op_3040_0), 0, 12352 }, /* MOVEA.W Dn,An */ +{ CPUFUNC_FF(op_3048_0), 0, 12360 }, /* MOVEA.W An,An */ +{ CPUFUNC_FF(op_3050_0), 0, 12368 }, /* MOVEA.W (An),An */ +{ CPUFUNC_FF(op_3058_0), 0, 12376 }, /* MOVEA.W (An)+,An */ +{ CPUFUNC_FF(op_3060_0), 0, 12384 }, /* MOVEA.W -(An),An */ +{ CPUFUNC_FF(op_3068_0), 0, 12392 }, /* MOVEA.W (d16,An),An */ +{ CPUFUNC_FF(op_3070_0), 0, 12400 }, /* MOVEA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_3078_0), 0, 12408 }, /* MOVEA.W (xxx).W,An */ +{ CPUFUNC_FF(op_3079_0), 0, 12409 }, /* MOVEA.W (xxx).L,An */ +{ CPUFUNC_FF(op_307a_0), 0, 12410 }, /* MOVEA.W (d16,PC),An */ +{ CPUFUNC_FF(op_307b_0), 0, 12411 }, /* MOVEA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_307c_0), 0, 12412 }, /* MOVEA.W #.W,An */ +{ CPUFUNC(op_3080_0), 0, 12416 }, /* MOVE.W Dn,(An) */ +{ CPUFUNC(op_3088_0), 0, 12424 }, /* MOVE.W An,(An) */ +{ CPUFUNC(op_3090_0), 0, 12432 }, /* MOVE.W (An),(An) */ +{ CPUFUNC(op_3098_0), 0, 12440 }, /* MOVE.W (An)+,(An) */ +{ CPUFUNC(op_30a0_0), 0, 12448 }, /* MOVE.W -(An),(An) */ +{ CPUFUNC(op_30a8_0), 0, 12456 }, /* MOVE.W (d16,An),(An) */ +{ CPUFUNC(op_30b0_0), 0, 12464 }, /* MOVE.W (d8,An,Xn),(An) */ +{ CPUFUNC(op_30b8_0), 0, 12472 }, /* MOVE.W (xxx).W,(An) */ +{ CPUFUNC(op_30b9_0), 0, 12473 }, /* MOVE.W (xxx).L,(An) */ +{ CPUFUNC(op_30ba_0), 0, 12474 }, /* MOVE.W (d16,PC),(An) */ +{ CPUFUNC(op_30bb_0), 0, 12475 }, /* MOVE.W (d8,PC,Xn),(An) */ +{ CPUFUNC(op_30bc_0), 0, 12476 }, /* MOVE.W #.W,(An) */ +{ CPUFUNC(op_30c0_0), 0, 12480 }, /* MOVE.W Dn,(An)+ */ +{ CPUFUNC(op_30c8_0), 0, 12488 }, /* MOVE.W An,(An)+ */ +{ CPUFUNC(op_30d0_0), 0, 12496 }, /* MOVE.W (An),(An)+ */ +{ CPUFUNC(op_30d8_0), 0, 12504 }, /* MOVE.W (An)+,(An)+ */ +{ CPUFUNC(op_30e0_0), 0, 12512 }, /* MOVE.W -(An),(An)+ */ +{ CPUFUNC(op_30e8_0), 0, 12520 }, /* MOVE.W (d16,An),(An)+ */ +{ CPUFUNC(op_30f0_0), 0, 12528 }, /* MOVE.W (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_30f8_0), 0, 12536 }, /* MOVE.W (xxx).W,(An)+ */ +{ CPUFUNC(op_30f9_0), 0, 12537 }, /* MOVE.W (xxx).L,(An)+ */ +{ CPUFUNC(op_30fa_0), 0, 12538 }, /* MOVE.W (d16,PC),(An)+ */ +{ CPUFUNC(op_30fb_0), 0, 12539 }, /* MOVE.W (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_30fc_0), 0, 12540 }, /* MOVE.W #.W,(An)+ */ +{ CPUFUNC(op_3100_0), 0, 12544 }, /* MOVE.W Dn,-(An) */ +{ CPUFUNC(op_3108_0), 0, 12552 }, /* MOVE.W An,-(An) */ +{ CPUFUNC(op_3110_0), 0, 12560 }, /* MOVE.W (An),-(An) */ +{ CPUFUNC(op_3118_0), 0, 12568 }, /* MOVE.W (An)+,-(An) */ +{ CPUFUNC(op_3120_0), 0, 12576 }, /* MOVE.W -(An),-(An) */ +{ CPUFUNC(op_3128_0), 0, 12584 }, /* MOVE.W (d16,An),-(An) */ +{ CPUFUNC(op_3130_0), 0, 12592 }, /* MOVE.W (d8,An,Xn),-(An) */ +{ CPUFUNC(op_3138_0), 0, 12600 }, /* MOVE.W (xxx).W,-(An) */ +{ CPUFUNC(op_3139_0), 0, 12601 }, /* MOVE.W (xxx).L,-(An) */ +{ CPUFUNC(op_313a_0), 0, 12602 }, /* MOVE.W (d16,PC),-(An) */ +{ CPUFUNC(op_313b_0), 0, 12603 }, /* MOVE.W (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_313c_0), 0, 12604 }, /* MOVE.W #.W,-(An) */ +{ CPUFUNC(op_3140_0), 0, 12608 }, /* MOVE.W Dn,(d16,An) */ +{ CPUFUNC(op_3148_0), 0, 12616 }, /* MOVE.W An,(d16,An) */ +{ CPUFUNC(op_3150_0), 0, 12624 }, /* MOVE.W (An),(d16,An) */ +{ CPUFUNC(op_3158_0), 0, 12632 }, /* MOVE.W (An)+,(d16,An) */ +{ CPUFUNC(op_3160_0), 0, 12640 }, /* MOVE.W -(An),(d16,An) */ +{ CPUFUNC(op_3168_0), 0, 12648 }, /* MOVE.W (d16,An),(d16,An) */ +{ CPUFUNC(op_3170_0), 0, 12656 }, /* MOVE.W (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_3178_0), 0, 12664 }, /* MOVE.W (xxx).W,(d16,An) */ +{ CPUFUNC(op_3179_0), 0, 12665 }, /* MOVE.W (xxx).L,(d16,An) */ +{ CPUFUNC(op_317a_0), 0, 12666 }, /* MOVE.W (d16,PC),(d16,An) */ +{ CPUFUNC(op_317b_0), 0, 12667 }, /* MOVE.W (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_317c_0), 0, 12668 }, /* MOVE.W #.W,(d16,An) */ +{ CPUFUNC(op_3180_0), 0, 12672 }, /* MOVE.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_3188_0), 0, 12680 }, /* MOVE.W An,(d8,An,Xn) */ +{ CPUFUNC(op_3190_0), 0, 12688 }, /* MOVE.W (An),(d8,An,Xn) */ +{ CPUFUNC(op_3198_0), 0, 12696 }, /* MOVE.W (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_31a0_0), 0, 12704 }, /* MOVE.W -(An),(d8,An,Xn) */ +{ CPUFUNC(op_31a8_0), 0, 12712 }, /* MOVE.W (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_31b0_0), 0, 12720 }, /* MOVE.W (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_31b8_0), 0, 12728 }, /* MOVE.W (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_31b9_0), 0, 12729 }, /* MOVE.W (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_31ba_0), 0, 12730 }, /* MOVE.W (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_31bb_0), 0, 12731 }, /* MOVE.W (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_31bc_0), 0, 12732 }, /* MOVE.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_31c0_0), 0, 12736 }, /* MOVE.W Dn,(xxx).W */ +{ CPUFUNC(op_31c8_0), 0, 12744 }, /* MOVE.W An,(xxx).W */ +{ CPUFUNC(op_31d0_0), 0, 12752 }, /* MOVE.W (An),(xxx).W */ +{ CPUFUNC(op_31d8_0), 0, 12760 }, /* MOVE.W (An)+,(xxx).W */ +{ CPUFUNC(op_31e0_0), 0, 12768 }, /* MOVE.W -(An),(xxx).W */ +{ CPUFUNC(op_31e8_0), 0, 12776 }, /* MOVE.W (d16,An),(xxx).W */ +{ CPUFUNC(op_31f0_0), 0, 12784 }, /* MOVE.W (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_31f8_0), 0, 12792 }, /* MOVE.W (xxx).W,(xxx).W */ +{ CPUFUNC(op_31f9_0), 0, 12793 }, /* MOVE.W (xxx).L,(xxx).W */ +{ CPUFUNC(op_31fa_0), 0, 12794 }, /* MOVE.W (d16,PC),(xxx).W */ +{ CPUFUNC(op_31fb_0), 0, 12795 }, /* MOVE.W (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_31fc_0), 0, 12796 }, /* MOVE.W #.W,(xxx).W */ +{ CPUFUNC(op_33c0_0), 0, 13248 }, /* MOVE.W Dn,(xxx).L */ +{ CPUFUNC(op_33c8_0), 0, 13256 }, /* MOVE.W An,(xxx).L */ +{ CPUFUNC(op_33d0_0), 0, 13264 }, /* MOVE.W (An),(xxx).L */ +{ CPUFUNC(op_33d8_0), 0, 13272 }, /* MOVE.W (An)+,(xxx).L */ +{ CPUFUNC(op_33e0_0), 0, 13280 }, /* MOVE.W -(An),(xxx).L */ +{ CPUFUNC(op_33e8_0), 0, 13288 }, /* MOVE.W (d16,An),(xxx).L */ +{ CPUFUNC(op_33f0_0), 0, 13296 }, /* MOVE.W (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_33f8_0), 0, 13304 }, /* MOVE.W (xxx).W,(xxx).L */ +{ CPUFUNC(op_33f9_0), 0, 13305 }, /* MOVE.W (xxx).L,(xxx).L */ +{ CPUFUNC(op_33fa_0), 0, 13306 }, /* MOVE.W (d16,PC),(xxx).L */ +{ CPUFUNC(op_33fb_0), 0, 13307 }, /* MOVE.W (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_33fc_0), 0, 13308 }, /* MOVE.W #.W,(xxx).L */ +{ CPUFUNC(op_4000_0), 0, 16384 }, /* NEGX.B Dn */ +{ CPUFUNC(op_4010_0), 0, 16400 }, /* NEGX.B (An) */ +{ CPUFUNC(op_4018_0), 0, 16408 }, /* NEGX.B (An)+ */ +{ CPUFUNC(op_4020_0), 0, 16416 }, /* NEGX.B -(An) */ +{ CPUFUNC(op_4028_0), 0, 16424 }, /* NEGX.B (d16,An) */ +{ CPUFUNC(op_4030_0), 0, 16432 }, /* NEGX.B (d8,An,Xn) */ +{ CPUFUNC(op_4038_0), 0, 16440 }, /* NEGX.B (xxx).W */ +{ CPUFUNC(op_4039_0), 0, 16441 }, /* NEGX.B (xxx).L */ +{ CPUFUNC(op_4040_0), 0, 16448 }, /* NEGX.W Dn */ +{ CPUFUNC(op_4050_0), 0, 16464 }, /* NEGX.W (An) */ +{ CPUFUNC(op_4058_0), 0, 16472 }, /* NEGX.W (An)+ */ +{ CPUFUNC(op_4060_0), 0, 16480 }, /* NEGX.W -(An) */ +{ CPUFUNC(op_4068_0), 0, 16488 }, /* NEGX.W (d16,An) */ +{ CPUFUNC(op_4070_0), 0, 16496 }, /* NEGX.W (d8,An,Xn) */ +{ CPUFUNC(op_4078_0), 0, 16504 }, /* NEGX.W (xxx).W */ +{ CPUFUNC(op_4079_0), 0, 16505 }, /* NEGX.W (xxx).L */ +{ CPUFUNC(op_4080_0), 0, 16512 }, /* NEGX.L Dn */ +{ CPUFUNC(op_4090_0), 0, 16528 }, /* NEGX.L (An) */ +{ CPUFUNC(op_4098_0), 0, 16536 }, /* NEGX.L (An)+ */ +{ CPUFUNC(op_40a0_0), 0, 16544 }, /* NEGX.L -(An) */ +{ CPUFUNC(op_40a8_0), 0, 16552 }, /* NEGX.L (d16,An) */ +{ CPUFUNC(op_40b0_0), 0, 16560 }, /* NEGX.L (d8,An,Xn) */ +{ CPUFUNC(op_40b8_0), 0, 16568 }, /* NEGX.L (xxx).W */ +{ CPUFUNC(op_40b9_0), 0, 16569 }, /* NEGX.L (xxx).L */ +{ CPUFUNC_FF(op_40c0_0), 0, 16576 }, /* MVSR2.W Dn */ +{ CPUFUNC_FF(op_40d0_0), 0, 16592 }, /* MVSR2.W (An) */ +{ CPUFUNC_FF(op_40d8_0), 0, 16600 }, /* MVSR2.W (An)+ */ +{ CPUFUNC_FF(op_40e0_0), 0, 16608 }, /* MVSR2.W -(An) */ +{ CPUFUNC_FF(op_40e8_0), 0, 16616 }, /* MVSR2.W (d16,An) */ +{ CPUFUNC_FF(op_40f0_0), 0, 16624 }, /* MVSR2.W (d8,An,Xn) */ +{ CPUFUNC_FF(op_40f8_0), 0, 16632 }, /* MVSR2.W (xxx).W */ +{ CPUFUNC_FF(op_40f9_0), 0, 16633 }, /* MVSR2.W (xxx).L */ +{ CPUFUNC(op_4100_0), 0, 16640 }, /* CHK.L Dn,Dn */ +{ CPUFUNC(op_4110_0), 0, 16656 }, /* CHK.L (An),Dn */ +{ CPUFUNC(op_4118_0), 0, 16664 }, /* CHK.L (An)+,Dn */ +{ CPUFUNC(op_4120_0), 0, 16672 }, /* CHK.L -(An),Dn */ +{ CPUFUNC(op_4128_0), 0, 16680 }, /* CHK.L (d16,An),Dn */ +{ CPUFUNC(op_4130_0), 0, 16688 }, /* CHK.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_4138_0), 0, 16696 }, /* CHK.L (xxx).W,Dn */ +{ CPUFUNC(op_4139_0), 0, 16697 }, /* CHK.L (xxx).L,Dn */ +{ CPUFUNC(op_413a_0), 0, 16698 }, /* CHK.L (d16,PC),Dn */ +{ CPUFUNC(op_413b_0), 0, 16699 }, /* CHK.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_413c_0), 0, 16700 }, /* CHK.L #.L,Dn */ +{ CPUFUNC(op_4180_0), 0, 16768 }, /* CHK.W Dn,Dn */ +{ CPUFUNC(op_4190_0), 0, 16784 }, /* CHK.W (An),Dn */ +{ CPUFUNC(op_4198_0), 0, 16792 }, /* CHK.W (An)+,Dn */ +{ CPUFUNC(op_41a0_0), 0, 16800 }, /* CHK.W -(An),Dn */ +{ CPUFUNC(op_41a8_0), 0, 16808 }, /* CHK.W (d16,An),Dn */ +{ CPUFUNC(op_41b0_0), 0, 16816 }, /* CHK.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_41b8_0), 0, 16824 }, /* CHK.W (xxx).W,Dn */ +{ CPUFUNC(op_41b9_0), 0, 16825 }, /* CHK.W (xxx).L,Dn */ +{ CPUFUNC(op_41ba_0), 0, 16826 }, /* CHK.W (d16,PC),Dn */ +{ CPUFUNC(op_41bb_0), 0, 16827 }, /* CHK.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_41bc_0), 0, 16828 }, /* CHK.W #.W,Dn */ +{ CPUFUNC_FF(op_41d0_0), 0, 16848 }, /* LEA.L (An),An */ +{ CPUFUNC_FF(op_41e8_0), 0, 16872 }, /* LEA.L (d16,An),An */ +{ CPUFUNC_FF(op_41f0_0), 0, 16880 }, /* LEA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_41f8_0), 0, 16888 }, /* LEA.L (xxx).W,An */ +{ CPUFUNC_FF(op_41f9_0), 0, 16889 }, /* LEA.L (xxx).L,An */ +{ CPUFUNC_FF(op_41fa_0), 0, 16890 }, /* LEA.L (d16,PC),An */ +{ CPUFUNC_FF(op_41fb_0), 0, 16891 }, /* LEA.L (d8,PC,Xn),An */ +{ CPUFUNC(op_4200_0), 0, 16896 }, /* CLR.B Dn */ +{ CPUFUNC(op_4210_0), 0, 16912 }, /* CLR.B (An) */ +{ CPUFUNC(op_4218_0), 0, 16920 }, /* CLR.B (An)+ */ +{ CPUFUNC(op_4220_0), 0, 16928 }, /* CLR.B -(An) */ +{ CPUFUNC(op_4228_0), 0, 16936 }, /* CLR.B (d16,An) */ +{ CPUFUNC(op_4230_0), 0, 16944 }, /* CLR.B (d8,An,Xn) */ +{ CPUFUNC(op_4238_0), 0, 16952 }, /* CLR.B (xxx).W */ +{ CPUFUNC(op_4239_0), 0, 16953 }, /* CLR.B (xxx).L */ +{ CPUFUNC(op_4240_0), 0, 16960 }, /* CLR.W Dn */ +{ CPUFUNC(op_4250_0), 0, 16976 }, /* CLR.W (An) */ +{ CPUFUNC(op_4258_0), 0, 16984 }, /* CLR.W (An)+ */ +{ CPUFUNC(op_4260_0), 0, 16992 }, /* CLR.W -(An) */ +{ CPUFUNC(op_4268_0), 0, 17000 }, /* CLR.W (d16,An) */ +{ CPUFUNC(op_4270_0), 0, 17008 }, /* CLR.W (d8,An,Xn) */ +{ CPUFUNC(op_4278_0), 0, 17016 }, /* CLR.W (xxx).W */ +{ CPUFUNC(op_4279_0), 0, 17017 }, /* CLR.W (xxx).L */ +{ CPUFUNC(op_4280_0), 0, 17024 }, /* CLR.L Dn */ +{ CPUFUNC(op_4290_0), 0, 17040 }, /* CLR.L (An) */ +{ CPUFUNC(op_4298_0), 0, 17048 }, /* CLR.L (An)+ */ +{ CPUFUNC(op_42a0_0), 0, 17056 }, /* CLR.L -(An) */ +{ CPUFUNC(op_42a8_0), 0, 17064 }, /* CLR.L (d16,An) */ +{ CPUFUNC(op_42b0_0), 0, 17072 }, /* CLR.L (d8,An,Xn) */ +{ CPUFUNC(op_42b8_0), 0, 17080 }, /* CLR.L (xxx).W */ +{ CPUFUNC(op_42b9_0), 0, 17081 }, /* CLR.L (xxx).L */ +{ CPUFUNC_FF(op_42c0_0), 0, 17088 }, /* MVSR2.B Dn */ +{ CPUFUNC_FF(op_42d0_0), 0, 17104 }, /* MVSR2.B (An) */ +{ CPUFUNC_FF(op_42d8_0), 0, 17112 }, /* MVSR2.B (An)+ */ +{ CPUFUNC_FF(op_42e0_0), 0, 17120 }, /* MVSR2.B -(An) */ +{ CPUFUNC_FF(op_42e8_0), 0, 17128 }, /* MVSR2.B (d16,An) */ +{ CPUFUNC_FF(op_42f0_0), 0, 17136 }, /* MVSR2.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_42f8_0), 0, 17144 }, /* MVSR2.B (xxx).W */ +{ CPUFUNC_FF(op_42f9_0), 0, 17145 }, /* MVSR2.B (xxx).L */ +{ CPUFUNC(op_4400_0), 0, 17408 }, /* NEG.B Dn */ +{ CPUFUNC(op_4410_0), 0, 17424 }, /* NEG.B (An) */ +{ CPUFUNC(op_4418_0), 0, 17432 }, /* NEG.B (An)+ */ +{ CPUFUNC(op_4420_0), 0, 17440 }, /* NEG.B -(An) */ +{ CPUFUNC(op_4428_0), 0, 17448 }, /* NEG.B (d16,An) */ +{ CPUFUNC(op_4430_0), 0, 17456 }, /* NEG.B (d8,An,Xn) */ +{ CPUFUNC(op_4438_0), 0, 17464 }, /* NEG.B (xxx).W */ +{ CPUFUNC(op_4439_0), 0, 17465 }, /* NEG.B (xxx).L */ +{ CPUFUNC(op_4440_0), 0, 17472 }, /* NEG.W Dn */ +{ CPUFUNC(op_4450_0), 0, 17488 }, /* NEG.W (An) */ +{ CPUFUNC(op_4458_0), 0, 17496 }, /* NEG.W (An)+ */ +{ CPUFUNC(op_4460_0), 0, 17504 }, /* NEG.W -(An) */ +{ CPUFUNC(op_4468_0), 0, 17512 }, /* NEG.W (d16,An) */ +{ CPUFUNC(op_4470_0), 0, 17520 }, /* NEG.W (d8,An,Xn) */ +{ CPUFUNC(op_4478_0), 0, 17528 }, /* NEG.W (xxx).W */ +{ CPUFUNC(op_4479_0), 0, 17529 }, /* NEG.W (xxx).L */ +{ CPUFUNC(op_4480_0), 0, 17536 }, /* NEG.L Dn */ +{ CPUFUNC(op_4490_0), 0, 17552 }, /* NEG.L (An) */ +{ CPUFUNC(op_4498_0), 0, 17560 }, /* NEG.L (An)+ */ +{ CPUFUNC(op_44a0_0), 0, 17568 }, /* NEG.L -(An) */ +{ CPUFUNC(op_44a8_0), 0, 17576 }, /* NEG.L (d16,An) */ +{ CPUFUNC(op_44b0_0), 0, 17584 }, /* NEG.L (d8,An,Xn) */ +{ CPUFUNC(op_44b8_0), 0, 17592 }, /* NEG.L (xxx).W */ +{ CPUFUNC(op_44b9_0), 0, 17593 }, /* NEG.L (xxx).L */ +{ CPUFUNC(op_44c0_0), 0, 17600 }, /* MV2SR.B Dn */ +{ CPUFUNC(op_44d0_0), 0, 17616 }, /* MV2SR.B (An) */ +{ CPUFUNC(op_44d8_0), 0, 17624 }, /* MV2SR.B (An)+ */ +{ CPUFUNC(op_44e0_0), 0, 17632 }, /* MV2SR.B -(An) */ +{ CPUFUNC(op_44e8_0), 0, 17640 }, /* MV2SR.B (d16,An) */ +{ CPUFUNC(op_44f0_0), 0, 17648 }, /* MV2SR.B (d8,An,Xn) */ +{ CPUFUNC(op_44f8_0), 0, 17656 }, /* MV2SR.B (xxx).W */ +{ CPUFUNC(op_44f9_0), 0, 17657 }, /* MV2SR.B (xxx).L */ +{ CPUFUNC(op_44fa_0), 0, 17658 }, /* MV2SR.B (d16,PC) */ +{ CPUFUNC(op_44fb_0), 0, 17659 }, /* MV2SR.B (d8,PC,Xn) */ +{ CPUFUNC(op_44fc_0), 0, 17660 }, /* MV2SR.B #.B */ +{ CPUFUNC(op_4600_0), 0, 17920 }, /* NOT.B Dn */ +{ CPUFUNC(op_4610_0), 0, 17936 }, /* NOT.B (An) */ +{ CPUFUNC(op_4618_0), 0, 17944 }, /* NOT.B (An)+ */ +{ CPUFUNC(op_4620_0), 0, 17952 }, /* NOT.B -(An) */ +{ CPUFUNC(op_4628_0), 0, 17960 }, /* NOT.B (d16,An) */ +{ CPUFUNC(op_4630_0), 0, 17968 }, /* NOT.B (d8,An,Xn) */ +{ CPUFUNC(op_4638_0), 0, 17976 }, /* NOT.B (xxx).W */ +{ CPUFUNC(op_4639_0), 0, 17977 }, /* NOT.B (xxx).L */ +{ CPUFUNC(op_4640_0), 0, 17984 }, /* NOT.W Dn */ +{ CPUFUNC(op_4650_0), 0, 18000 }, /* NOT.W (An) */ +{ CPUFUNC(op_4658_0), 0, 18008 }, /* NOT.W (An)+ */ +{ CPUFUNC(op_4660_0), 0, 18016 }, /* NOT.W -(An) */ +{ CPUFUNC(op_4668_0), 0, 18024 }, /* NOT.W (d16,An) */ +{ CPUFUNC(op_4670_0), 0, 18032 }, /* NOT.W (d8,An,Xn) */ +{ CPUFUNC(op_4678_0), 0, 18040 }, /* NOT.W (xxx).W */ +{ CPUFUNC(op_4679_0), 0, 18041 }, /* NOT.W (xxx).L */ +{ CPUFUNC(op_4680_0), 0, 18048 }, /* NOT.L Dn */ +{ CPUFUNC(op_4690_0), 0, 18064 }, /* NOT.L (An) */ +{ CPUFUNC(op_4698_0), 0, 18072 }, /* NOT.L (An)+ */ +{ CPUFUNC(op_46a0_0), 0, 18080 }, /* NOT.L -(An) */ +{ CPUFUNC(op_46a8_0), 0, 18088 }, /* NOT.L (d16,An) */ +{ CPUFUNC(op_46b0_0), 0, 18096 }, /* NOT.L (d8,An,Xn) */ +{ CPUFUNC(op_46b8_0), 0, 18104 }, /* NOT.L (xxx).W */ +{ CPUFUNC(op_46b9_0), 0, 18105 }, /* NOT.L (xxx).L */ +{ CPUFUNC(op_46c0_0), 0, 18112 }, /* MV2SR.W Dn */ +{ CPUFUNC(op_46d0_0), 0, 18128 }, /* MV2SR.W (An) */ +{ CPUFUNC(op_46d8_0), 0, 18136 }, /* MV2SR.W (An)+ */ +{ CPUFUNC(op_46e0_0), 0, 18144 }, /* MV2SR.W -(An) */ +{ CPUFUNC(op_46e8_0), 0, 18152 }, /* MV2SR.W (d16,An) */ +{ CPUFUNC(op_46f0_0), 0, 18160 }, /* MV2SR.W (d8,An,Xn) */ +{ CPUFUNC(op_46f8_0), 0, 18168 }, /* MV2SR.W (xxx).W */ +{ CPUFUNC(op_46f9_0), 0, 18169 }, /* MV2SR.W (xxx).L */ +{ CPUFUNC(op_46fa_0), 0, 18170 }, /* MV2SR.W (d16,PC) */ +{ CPUFUNC(op_46fb_0), 0, 18171 }, /* MV2SR.W (d8,PC,Xn) */ +{ CPUFUNC(op_46fc_0), 0, 18172 }, /* MV2SR.W #.W */ +{ CPUFUNC(op_4800_0), 0, 18432 }, /* NBCD.B Dn */ +{ CPUFUNC_FF(op_4808_0), 0, 18440 }, /* LINK.L An,#.L */ +{ CPUFUNC(op_4810_0), 0, 18448 }, /* NBCD.B (An) */ +{ CPUFUNC(op_4818_0), 0, 18456 }, /* NBCD.B (An)+ */ +{ CPUFUNC(op_4820_0), 0, 18464 }, /* NBCD.B -(An) */ +{ CPUFUNC(op_4828_0), 0, 18472 }, /* NBCD.B (d16,An) */ +{ CPUFUNC(op_4830_0), 0, 18480 }, /* NBCD.B (d8,An,Xn) */ +{ CPUFUNC(op_4838_0), 0, 18488 }, /* NBCD.B (xxx).W */ +{ CPUFUNC(op_4839_0), 0, 18489 }, /* NBCD.B (xxx).L */ +{ CPUFUNC(op_4840_0), 0, 18496 }, /* SWAP.W Dn */ +{ CPUFUNC_FF(op_4848_0), 0, 18504 }, /* BKPT.L # */ +{ CPUFUNC_FF(op_4850_0), 0, 18512 }, /* PEA.L (An) */ +{ CPUFUNC_FF(op_4868_0), 0, 18536 }, /* PEA.L (d16,An) */ +{ CPUFUNC_FF(op_4870_0), 0, 18544 }, /* PEA.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4878_0), 0, 18552 }, /* PEA.L (xxx).W */ +{ CPUFUNC_FF(op_4879_0), 0, 18553 }, /* PEA.L (xxx).L */ +{ CPUFUNC_FF(op_487a_0), 0, 18554 }, /* PEA.L (d16,PC) */ +{ CPUFUNC_FF(op_487b_0), 0, 18555 }, /* PEA.L (d8,PC,Xn) */ +{ CPUFUNC(op_4880_0), 0, 18560 }, /* EXT.W Dn */ +{ CPUFUNC_FF(op_4890_0), 0, 18576 }, /* MVMLE.W #.W,(An) */ +{ CPUFUNC_FF(op_48a0_0), 0, 18592 }, /* MVMLE.W #.W,-(An) */ +{ CPUFUNC_FF(op_48a8_0), 0, 18600 }, /* MVMLE.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_48b0_0), 0, 18608 }, /* MVMLE.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_48b8_0), 0, 18616 }, /* MVMLE.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_48b9_0), 0, 18617 }, /* MVMLE.W #.W,(xxx).L */ +{ CPUFUNC(op_48c0_0), 0, 18624 }, /* EXT.L Dn */ +{ CPUFUNC_FF(op_48d0_0), 0, 18640 }, /* MVMLE.L #.W,(An) */ +{ CPUFUNC_FF(op_48e0_0), 0, 18656 }, /* MVMLE.L #.W,-(An) */ +{ CPUFUNC_FF(op_48e8_0), 0, 18664 }, /* MVMLE.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_48f0_0), 0, 18672 }, /* MVMLE.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_48f8_0), 0, 18680 }, /* MVMLE.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_48f9_0), 0, 18681 }, /* MVMLE.L #.W,(xxx).L */ +{ CPUFUNC(op_49c0_0), 0, 18880 }, /* EXT.B Dn */ +{ CPUFUNC(op_4a00_0), 0, 18944 }, /* TST.B Dn */ +{ CPUFUNC(op_4a10_0), 0, 18960 }, /* TST.B (An) */ +{ CPUFUNC(op_4a18_0), 0, 18968 }, /* TST.B (An)+ */ +{ CPUFUNC(op_4a20_0), 0, 18976 }, /* TST.B -(An) */ +{ CPUFUNC(op_4a28_0), 0, 18984 }, /* TST.B (d16,An) */ +{ CPUFUNC(op_4a30_0), 0, 18992 }, /* TST.B (d8,An,Xn) */ +{ CPUFUNC(op_4a38_0), 0, 19000 }, /* TST.B (xxx).W */ +{ CPUFUNC(op_4a39_0), 0, 19001 }, /* TST.B (xxx).L */ +{ CPUFUNC(op_4a3a_0), 0, 19002 }, /* TST.B (d16,PC) */ +{ CPUFUNC(op_4a3b_0), 0, 19003 }, /* TST.B (d8,PC,Xn) */ +{ CPUFUNC(op_4a3c_0), 0, 19004 }, /* TST.B #.B */ +{ CPUFUNC(op_4a40_0), 0, 19008 }, /* TST.W Dn */ +{ CPUFUNC(op_4a48_0), 0, 19016 }, /* TST.W An */ +{ CPUFUNC(op_4a50_0), 0, 19024 }, /* TST.W (An) */ +{ CPUFUNC(op_4a58_0), 0, 19032 }, /* TST.W (An)+ */ +{ CPUFUNC(op_4a60_0), 0, 19040 }, /* TST.W -(An) */ +{ CPUFUNC(op_4a68_0), 0, 19048 }, /* TST.W (d16,An) */ +{ CPUFUNC(op_4a70_0), 0, 19056 }, /* TST.W (d8,An,Xn) */ +{ CPUFUNC(op_4a78_0), 0, 19064 }, /* TST.W (xxx).W */ +{ CPUFUNC(op_4a79_0), 0, 19065 }, /* TST.W (xxx).L */ +{ CPUFUNC(op_4a7a_0), 0, 19066 }, /* TST.W (d16,PC) */ +{ CPUFUNC(op_4a7b_0), 0, 19067 }, /* TST.W (d8,PC,Xn) */ +{ CPUFUNC(op_4a7c_0), 0, 19068 }, /* TST.W #.W */ +{ CPUFUNC(op_4a80_0), 0, 19072 }, /* TST.L Dn */ +{ CPUFUNC(op_4a88_0), 0, 19080 }, /* TST.L An */ +{ CPUFUNC(op_4a90_0), 0, 19088 }, /* TST.L (An) */ +{ CPUFUNC(op_4a98_0), 0, 19096 }, /* TST.L (An)+ */ +{ CPUFUNC(op_4aa0_0), 0, 19104 }, /* TST.L -(An) */ +{ CPUFUNC(op_4aa8_0), 0, 19112 }, /* TST.L (d16,An) */ +{ CPUFUNC(op_4ab0_0), 0, 19120 }, /* TST.L (d8,An,Xn) */ +{ CPUFUNC(op_4ab8_0), 0, 19128 }, /* TST.L (xxx).W */ +{ CPUFUNC(op_4ab9_0), 0, 19129 }, /* TST.L (xxx).L */ +{ CPUFUNC(op_4aba_0), 0, 19130 }, /* TST.L (d16,PC) */ +{ CPUFUNC(op_4abb_0), 0, 19131 }, /* TST.L (d8,PC,Xn) */ +{ CPUFUNC(op_4abc_0), 0, 19132 }, /* TST.L #.L */ +{ CPUFUNC(op_4ac0_0), 0, 19136 }, /* TAS.B Dn */ +{ CPUFUNC(op_4ad0_0), 0, 19152 }, /* TAS.B (An) */ +{ CPUFUNC(op_4ad8_0), 0, 19160 }, /* TAS.B (An)+ */ +{ CPUFUNC(op_4ae0_0), 0, 19168 }, /* TAS.B -(An) */ +{ CPUFUNC(op_4ae8_0), 0, 19176 }, /* TAS.B (d16,An) */ +{ CPUFUNC(op_4af0_0), 0, 19184 }, /* TAS.B (d8,An,Xn) */ +{ CPUFUNC(op_4af8_0), 0, 19192 }, /* TAS.B (xxx).W */ +{ CPUFUNC(op_4af9_0), 0, 19193 }, /* TAS.B (xxx).L */ +{ CPUFUNC(op_4c00_0), 0, 19456 }, /* MULL.L #.W,Dn */ +{ CPUFUNC(op_4c10_0), 0, 19472 }, /* MULL.L #.W,(An) */ +{ CPUFUNC(op_4c18_0), 0, 19480 }, /* MULL.L #.W,(An)+ */ +{ CPUFUNC(op_4c20_0), 0, 19488 }, /* MULL.L #.W,-(An) */ +{ CPUFUNC(op_4c28_0), 0, 19496 }, /* MULL.L #.W,(d16,An) */ +{ CPUFUNC(op_4c30_0), 0, 19504 }, /* MULL.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_4c38_0), 0, 19512 }, /* MULL.L #.W,(xxx).W */ +{ CPUFUNC(op_4c39_0), 0, 19513 }, /* MULL.L #.W,(xxx).L */ +{ CPUFUNC(op_4c3a_0), 0, 19514 }, /* MULL.L #.W,(d16,PC) */ +{ CPUFUNC(op_4c3b_0), 0, 19515 }, /* MULL.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_4c3c_0), 0, 19516 }, /* MULL.L #.W,#.L */ +{ CPUFUNC(op_4c40_0), 0, 19520 }, /* DIVL.L #.W,Dn */ +{ CPUFUNC(op_4c50_0), 0, 19536 }, /* DIVL.L #.W,(An) */ +{ CPUFUNC(op_4c58_0), 0, 19544 }, /* DIVL.L #.W,(An)+ */ +{ CPUFUNC(op_4c60_0), 0, 19552 }, /* DIVL.L #.W,-(An) */ +{ CPUFUNC(op_4c68_0), 0, 19560 }, /* DIVL.L #.W,(d16,An) */ +{ CPUFUNC(op_4c70_0), 0, 19568 }, /* DIVL.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_4c78_0), 0, 19576 }, /* DIVL.L #.W,(xxx).W */ +{ CPUFUNC(op_4c79_0), 0, 19577 }, /* DIVL.L #.W,(xxx).L */ +{ CPUFUNC(op_4c7a_0), 0, 19578 }, /* DIVL.L #.W,(d16,PC) */ +{ CPUFUNC(op_4c7b_0), 0, 19579 }, /* DIVL.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_4c7c_0), 0, 19580 }, /* DIVL.L #.W,#.L */ +{ CPUFUNC_FF(op_4c90_0), 0, 19600 }, /* MVMEL.W #.W,(An) */ +{ CPUFUNC_FF(op_4c98_0), 0, 19608 }, /* MVMEL.W #.W,(An)+ */ +{ CPUFUNC_FF(op_4ca8_0), 0, 19624 }, /* MVMEL.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_4cb0_0), 0, 19632 }, /* MVMEL.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_4cb8_0), 0, 19640 }, /* MVMEL.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_4cb9_0), 0, 19641 }, /* MVMEL.W #.W,(xxx).L */ +{ CPUFUNC_FF(op_4cba_0), 0, 19642 }, /* MVMEL.W #.W,(d16,PC) */ +{ CPUFUNC_FF(op_4cbb_0), 0, 19643 }, /* MVMEL.W #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_4cd0_0), 0, 19664 }, /* MVMEL.L #.W,(An) */ +{ CPUFUNC_FF(op_4cd8_0), 0, 19672 }, /* MVMEL.L #.W,(An)+ */ +{ CPUFUNC_FF(op_4ce8_0), 0, 19688 }, /* MVMEL.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_4cf0_0), 0, 19696 }, /* MVMEL.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_4cf8_0), 0, 19704 }, /* MVMEL.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_4cf9_0), 0, 19705 }, /* MVMEL.L #.W,(xxx).L */ +{ CPUFUNC_FF(op_4cfa_0), 0, 19706 }, /* MVMEL.L #.W,(d16,PC) */ +{ CPUFUNC_FF(op_4cfb_0), 0, 19707 }, /* MVMEL.L #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_4e40_0), 0, 20032 }, /* TRAP.L # */ +{ CPUFUNC_FF(op_4e50_0), 0, 20048 }, /* LINK.W An,#.W */ +{ CPUFUNC_FF(op_4e58_0), 0, 20056 }, /* UNLK.L An */ +{ CPUFUNC_FF(op_4e60_0), 0, 20064 }, /* MVR2USP.L An */ +{ CPUFUNC_FF(op_4e68_0), 0, 20072 }, /* MVUSP2R.L An */ +{ CPUFUNC_FF(op_4e70_0), 0, 20080 }, /* RESET.L */ +{ CPUFUNC_FF(op_4e71_0), 0, 20081 }, /* NOP.L */ +{ CPUFUNC(op_4e72_0), 0, 20082 }, /* STOP.L #.W */ +{ CPUFUNC(op_4e73_0), 0, 20083 }, /* RTE.L */ +{ CPUFUNC_FF(op_4e74_0), 0, 20084 }, /* RTD.L #.W */ +{ CPUFUNC_FF(op_4e75_0), 0, 20085 }, /* RTS.L */ +{ CPUFUNC_FF(op_4e76_0), 0, 20086 }, /* TRAPV.L */ +{ CPUFUNC(op_4e77_0), 0, 20087 }, /* RTR.L */ +{ CPUFUNC_FF(op_4e7a_0), 0, 20090 }, /* MOVEC2.L #.W */ +{ CPUFUNC_FF(op_4e7b_0), 0, 20091 }, /* MOVE2C.L #.W */ +{ CPUFUNC_FF(op_4e90_0), 0, 20112 }, /* JSR.L (An) */ +{ CPUFUNC_FF(op_4ea8_0), 0, 20136 }, /* JSR.L (d16,An) */ +{ CPUFUNC_FF(op_4eb0_0), 0, 20144 }, /* JSR.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4eb8_0), 0, 20152 }, /* JSR.L (xxx).W */ +{ CPUFUNC_FF(op_4eb9_0), 0, 20153 }, /* JSR.L (xxx).L */ +{ CPUFUNC_FF(op_4eba_0), 0, 20154 }, /* JSR.L (d16,PC) */ +{ CPUFUNC_FF(op_4ebb_0), 0, 20155 }, /* JSR.L (d8,PC,Xn) */ +{ CPUFUNC_FF(op_4ed0_0), 0, 20176 }, /* JMP.L (An) */ +{ CPUFUNC_FF(op_4ee8_0), 0, 20200 }, /* JMP.L (d16,An) */ +{ CPUFUNC_FF(op_4ef0_0), 0, 20208 }, /* JMP.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4ef8_0), 0, 20216 }, /* JMP.L (xxx).W */ +{ CPUFUNC_FF(op_4ef9_0), 0, 20217 }, /* JMP.L (xxx).L */ +{ CPUFUNC_FF(op_4efa_0), 0, 20218 }, /* JMP.L (d16,PC) */ +{ CPUFUNC_FF(op_4efb_0), 0, 20219 }, /* JMP.L (d8,PC,Xn) */ +{ CPUFUNC(op_5000_0), 0, 20480 }, /* ADD.B #,Dn */ +{ CPUFUNC(op_5010_0), 0, 20496 }, /* ADD.B #,(An) */ +{ CPUFUNC(op_5018_0), 0, 20504 }, /* ADD.B #,(An)+ */ +{ CPUFUNC(op_5020_0), 0, 20512 }, /* ADD.B #,-(An) */ +{ CPUFUNC(op_5028_0), 0, 20520 }, /* ADD.B #,(d16,An) */ +{ CPUFUNC(op_5030_0), 0, 20528 }, /* ADD.B #,(d8,An,Xn) */ +{ CPUFUNC(op_5038_0), 0, 20536 }, /* ADD.B #,(xxx).W */ +{ CPUFUNC(op_5039_0), 0, 20537 }, /* ADD.B #,(xxx).L */ +{ CPUFUNC(op_5040_0), 0, 20544 }, /* ADD.W #,Dn */ +{ CPUFUNC_FF(op_5048_0), 0, 20552 }, /* ADDA.W #,An */ +{ CPUFUNC(op_5050_0), 0, 20560 }, /* ADD.W #,(An) */ +{ CPUFUNC(op_5058_0), 0, 20568 }, /* ADD.W #,(An)+ */ +{ CPUFUNC(op_5060_0), 0, 20576 }, /* ADD.W #,-(An) */ +{ CPUFUNC(op_5068_0), 0, 20584 }, /* ADD.W #,(d16,An) */ +{ CPUFUNC(op_5070_0), 0, 20592 }, /* ADD.W #,(d8,An,Xn) */ +{ CPUFUNC(op_5078_0), 0, 20600 }, /* ADD.W #,(xxx).W */ +{ CPUFUNC(op_5079_0), 0, 20601 }, /* ADD.W #,(xxx).L */ +{ CPUFUNC(op_5080_0), 0, 20608 }, /* ADD.L #,Dn */ +{ CPUFUNC_FF(op_5088_0), 0, 20616 }, /* ADDA.L #,An */ +{ CPUFUNC(op_5090_0), 0, 20624 }, /* ADD.L #,(An) */ +{ CPUFUNC(op_5098_0), 0, 20632 }, /* ADD.L #,(An)+ */ +{ CPUFUNC(op_50a0_0), 0, 20640 }, /* ADD.L #,-(An) */ +{ CPUFUNC(op_50a8_0), 0, 20648 }, /* ADD.L #,(d16,An) */ +{ CPUFUNC(op_50b0_0), 0, 20656 }, /* ADD.L #,(d8,An,Xn) */ +{ CPUFUNC(op_50b8_0), 0, 20664 }, /* ADD.L #,(xxx).W */ +{ CPUFUNC(op_50b9_0), 0, 20665 }, /* ADD.L #,(xxx).L */ +{ CPUFUNC_FF(op_50c0_0), 0, 20672 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_50c8_0), 0, 20680 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_50d0_0), 0, 20688 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_50d8_0), 0, 20696 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_50e0_0), 0, 20704 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_50e8_0), 0, 20712 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_50f0_0), 0, 20720 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_50f8_0), 0, 20728 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_50f9_0), 0, 20729 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_50fa_0), 0, 20730 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_50fb_0), 0, 20731 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_50fc_0), 0, 20732 }, /* TRAPcc.L */ +{ CPUFUNC(op_5100_0), 0, 20736 }, /* SUB.B #,Dn */ +{ CPUFUNC(op_5110_0), 0, 20752 }, /* SUB.B #,(An) */ +{ CPUFUNC(op_5118_0), 0, 20760 }, /* SUB.B #,(An)+ */ +{ CPUFUNC(op_5120_0), 0, 20768 }, /* SUB.B #,-(An) */ +{ CPUFUNC(op_5128_0), 0, 20776 }, /* SUB.B #,(d16,An) */ +{ CPUFUNC(op_5130_0), 0, 20784 }, /* SUB.B #,(d8,An,Xn) */ +{ CPUFUNC(op_5138_0), 0, 20792 }, /* SUB.B #,(xxx).W */ +{ CPUFUNC(op_5139_0), 0, 20793 }, /* SUB.B #,(xxx).L */ +{ CPUFUNC(op_5140_0), 0, 20800 }, /* SUB.W #,Dn */ +{ CPUFUNC_FF(op_5148_0), 0, 20808 }, /* SUBA.W #,An */ +{ CPUFUNC(op_5150_0), 0, 20816 }, /* SUB.W #,(An) */ +{ CPUFUNC(op_5158_0), 0, 20824 }, /* SUB.W #,(An)+ */ +{ CPUFUNC(op_5160_0), 0, 20832 }, /* SUB.W #,-(An) */ +{ CPUFUNC(op_5168_0), 0, 20840 }, /* SUB.W #,(d16,An) */ +{ CPUFUNC(op_5170_0), 0, 20848 }, /* SUB.W #,(d8,An,Xn) */ +{ CPUFUNC(op_5178_0), 0, 20856 }, /* SUB.W #,(xxx).W */ +{ CPUFUNC(op_5179_0), 0, 20857 }, /* SUB.W #,(xxx).L */ +{ CPUFUNC(op_5180_0), 0, 20864 }, /* SUB.L #,Dn */ +{ CPUFUNC_FF(op_5188_0), 0, 20872 }, /* SUBA.L #,An */ +{ CPUFUNC(op_5190_0), 0, 20880 }, /* SUB.L #,(An) */ +{ CPUFUNC(op_5198_0), 0, 20888 }, /* SUB.L #,(An)+ */ +{ CPUFUNC(op_51a0_0), 0, 20896 }, /* SUB.L #,-(An) */ +{ CPUFUNC(op_51a8_0), 0, 20904 }, /* SUB.L #,(d16,An) */ +{ CPUFUNC(op_51b0_0), 0, 20912 }, /* SUB.L #,(d8,An,Xn) */ +{ CPUFUNC(op_51b8_0), 0, 20920 }, /* SUB.L #,(xxx).W */ +{ CPUFUNC(op_51b9_0), 0, 20921 }, /* SUB.L #,(xxx).L */ +{ CPUFUNC_FF(op_51c0_0), 0, 20928 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_51c8_0), 0, 20936 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_51d0_0), 0, 20944 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_51d8_0), 0, 20952 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_51e0_0), 0, 20960 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_51e8_0), 0, 20968 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_51f0_0), 0, 20976 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_51f8_0), 0, 20984 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_51f9_0), 0, 20985 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_51fa_0), 0, 20986 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_51fb_0), 0, 20987 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_51fc_0), 0, 20988 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_52c0_0), 0, 21184 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_52c8_0), 0, 21192 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_52d0_0), 0, 21200 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_52d8_0), 0, 21208 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_52e0_0), 0, 21216 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_52e8_0), 0, 21224 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_52f0_0), 0, 21232 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_52f8_0), 0, 21240 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_52f9_0), 0, 21241 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_52fa_0), 0, 21242 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_52fb_0), 0, 21243 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_52fc_0), 0, 21244 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_53c0_0), 0, 21440 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_53c8_0), 0, 21448 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_53d0_0), 0, 21456 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_53d8_0), 0, 21464 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_53e0_0), 0, 21472 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_53e8_0), 0, 21480 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_53f0_0), 0, 21488 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_53f8_0), 0, 21496 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_53f9_0), 0, 21497 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_53fa_0), 0, 21498 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_53fb_0), 0, 21499 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_53fc_0), 0, 21500 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_54c0_0), 0, 21696 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_54c8_0), 0, 21704 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_54d0_0), 0, 21712 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_54d8_0), 0, 21720 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_54e0_0), 0, 21728 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_54e8_0), 0, 21736 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_54f0_0), 0, 21744 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_54f8_0), 0, 21752 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_54f9_0), 0, 21753 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_54fa_0), 0, 21754 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_54fb_0), 0, 21755 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_54fc_0), 0, 21756 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_55c0_0), 0, 21952 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_55c8_0), 0, 21960 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_55d0_0), 0, 21968 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_55d8_0), 0, 21976 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_55e0_0), 0, 21984 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_55e8_0), 0, 21992 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_55f0_0), 0, 22000 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_55f8_0), 0, 22008 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_55f9_0), 0, 22009 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_55fa_0), 0, 22010 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_55fb_0), 0, 22011 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_55fc_0), 0, 22012 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_56c0_0), 0, 22208 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_56c8_0), 0, 22216 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_56d0_0), 0, 22224 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_56d8_0), 0, 22232 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_56e0_0), 0, 22240 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_56e8_0), 0, 22248 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_56f0_0), 0, 22256 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_56f8_0), 0, 22264 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_56f9_0), 0, 22265 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_56fa_0), 0, 22266 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_56fb_0), 0, 22267 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_56fc_0), 0, 22268 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_57c0_0), 0, 22464 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_57c8_0), 0, 22472 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_57d0_0), 0, 22480 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_57d8_0), 0, 22488 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_57e0_0), 0, 22496 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_57e8_0), 0, 22504 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_57f0_0), 0, 22512 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_57f8_0), 0, 22520 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_57f9_0), 0, 22521 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_57fa_0), 0, 22522 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_57fb_0), 0, 22523 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_57fc_0), 0, 22524 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_58c0_0), 0, 22720 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_58c8_0), 0, 22728 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_58d0_0), 0, 22736 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_58d8_0), 0, 22744 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_58e0_0), 0, 22752 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_58e8_0), 0, 22760 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_58f0_0), 0, 22768 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_58f8_0), 0, 22776 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_58f9_0), 0, 22777 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_58fa_0), 0, 22778 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_58fb_0), 0, 22779 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_58fc_0), 0, 22780 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_59c0_0), 0, 22976 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_59c8_0), 0, 22984 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_59d0_0), 0, 22992 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_59d8_0), 0, 23000 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_59e0_0), 0, 23008 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_59e8_0), 0, 23016 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_59f0_0), 0, 23024 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_59f8_0), 0, 23032 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_59f9_0), 0, 23033 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_59fa_0), 0, 23034 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_59fb_0), 0, 23035 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_59fc_0), 0, 23036 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5ac0_0), 0, 23232 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5ac8_0), 0, 23240 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5ad0_0), 0, 23248 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5ad8_0), 0, 23256 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ae0_0), 0, 23264 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ae8_0), 0, 23272 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5af0_0), 0, 23280 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5af8_0), 0, 23288 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5af9_0), 0, 23289 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5afa_0), 0, 23290 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5afb_0), 0, 23291 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5afc_0), 0, 23292 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5bc0_0), 0, 23488 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5bc8_0), 0, 23496 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5bd0_0), 0, 23504 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5bd8_0), 0, 23512 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5be0_0), 0, 23520 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5be8_0), 0, 23528 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5bf0_0), 0, 23536 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5bf8_0), 0, 23544 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5bf9_0), 0, 23545 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5bfa_0), 0, 23546 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5bfb_0), 0, 23547 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5bfc_0), 0, 23548 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5cc0_0), 0, 23744 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5cc8_0), 0, 23752 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5cd0_0), 0, 23760 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5cd8_0), 0, 23768 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ce0_0), 0, 23776 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ce8_0), 0, 23784 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5cf0_0), 0, 23792 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5cf8_0), 0, 23800 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5cf9_0), 0, 23801 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5cfa_0), 0, 23802 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5cfb_0), 0, 23803 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5cfc_0), 0, 23804 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5dc0_0), 0, 24000 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5dc8_0), 0, 24008 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5dd0_0), 0, 24016 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5dd8_0), 0, 24024 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5de0_0), 0, 24032 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5de8_0), 0, 24040 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5df0_0), 0, 24048 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5df8_0), 0, 24056 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5df9_0), 0, 24057 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5dfa_0), 0, 24058 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5dfb_0), 0, 24059 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5dfc_0), 0, 24060 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5ec0_0), 0, 24256 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5ec8_0), 0, 24264 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5ed0_0), 0, 24272 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5ed8_0), 0, 24280 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ee0_0), 0, 24288 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ee8_0), 0, 24296 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5ef0_0), 0, 24304 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5ef8_0), 0, 24312 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5ef9_0), 0, 24313 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5efa_0), 0, 24314 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5efb_0), 0, 24315 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5efc_0), 0, 24316 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5fc0_0), 0, 24512 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5fc8_0), 0, 24520 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5fd0_0), 0, 24528 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5fd8_0), 0, 24536 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5fe0_0), 0, 24544 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5fe8_0), 0, 24552 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5ff0_0), 0, 24560 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5ff8_0), 0, 24568 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5ff9_0), 0, 24569 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5ffa_0), 0, 24570 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5ffb_0), 0, 24571 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5ffc_0), 0, 24572 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_6000_0), 0, 24576 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6001_0), 0, 24577 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_60ff_0), 0, 24831 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6100_0), 0, 24832 }, /* BSR.W #.W */ +{ CPUFUNC_FF(op_6101_0), 0, 24833 }, /* BSR.B # */ +{ CPUFUNC_FF(op_61ff_0), 0, 25087 }, /* BSR.L #.L */ +{ CPUFUNC_FF(op_6200_0), 0, 25088 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6201_0), 0, 25089 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_62ff_0), 0, 25343 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6300_0), 0, 25344 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6301_0), 0, 25345 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_63ff_0), 0, 25599 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6400_0), 0, 25600 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6401_0), 0, 25601 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_64ff_0), 0, 25855 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6500_0), 0, 25856 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6501_0), 0, 25857 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_65ff_0), 0, 26111 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6600_0), 0, 26112 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6601_0), 0, 26113 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_66ff_0), 0, 26367 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6700_0), 0, 26368 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6701_0), 0, 26369 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_67ff_0), 0, 26623 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6800_0), 0, 26624 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6801_0), 0, 26625 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_68ff_0), 0, 26879 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6900_0), 0, 26880 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6901_0), 0, 26881 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_69ff_0), 0, 27135 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6a00_0), 0, 27136 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6a01_0), 0, 27137 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6aff_0), 0, 27391 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6b00_0), 0, 27392 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6b01_0), 0, 27393 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6bff_0), 0, 27647 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6c00_0), 0, 27648 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6c01_0), 0, 27649 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6cff_0), 0, 27903 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6d00_0), 0, 27904 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6d01_0), 0, 27905 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6dff_0), 0, 28159 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6e00_0), 0, 28160 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6e01_0), 0, 28161 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6eff_0), 0, 28415 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6f00_0), 0, 28416 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6f01_0), 0, 28417 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6fff_0), 0, 28671 }, /* Bcc.L #.L */ +{ CPUFUNC(op_7000_0), 0, 28672 }, /* MOVE.L #,Dn */ +{ CPUFUNC_FF(op_7100_0), 0, 28928 }, /* EMULOP_RETURN.L */ +{ CPUFUNC_FF(op_7101_0), 0, 28929 }, /* EMULOP.L # */ +{ CPUFUNC(op_8000_0), 0, 32768 }, /* OR.B Dn,Dn */ +{ CPUFUNC(op_8010_0), 0, 32784 }, /* OR.B (An),Dn */ +{ CPUFUNC(op_8018_0), 0, 32792 }, /* OR.B (An)+,Dn */ +{ CPUFUNC(op_8020_0), 0, 32800 }, /* OR.B -(An),Dn */ +{ CPUFUNC(op_8028_0), 0, 32808 }, /* OR.B (d16,An),Dn */ +{ CPUFUNC(op_8030_0), 0, 32816 }, /* OR.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_8038_0), 0, 32824 }, /* OR.B (xxx).W,Dn */ +{ CPUFUNC(op_8039_0), 0, 32825 }, /* OR.B (xxx).L,Dn */ +{ CPUFUNC(op_803a_0), 0, 32826 }, /* OR.B (d16,PC),Dn */ +{ CPUFUNC(op_803b_0), 0, 32827 }, /* OR.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_803c_0), 0, 32828 }, /* OR.B #.B,Dn */ +{ CPUFUNC(op_8040_0), 0, 32832 }, /* OR.W Dn,Dn */ +{ CPUFUNC(op_8050_0), 0, 32848 }, /* OR.W (An),Dn */ +{ CPUFUNC(op_8058_0), 0, 32856 }, /* OR.W (An)+,Dn */ +{ CPUFUNC(op_8060_0), 0, 32864 }, /* OR.W -(An),Dn */ +{ CPUFUNC(op_8068_0), 0, 32872 }, /* OR.W (d16,An),Dn */ +{ CPUFUNC(op_8070_0), 0, 32880 }, /* OR.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_8078_0), 0, 32888 }, /* OR.W (xxx).W,Dn */ +{ CPUFUNC(op_8079_0), 0, 32889 }, /* OR.W (xxx).L,Dn */ +{ CPUFUNC(op_807a_0), 0, 32890 }, /* OR.W (d16,PC),Dn */ +{ CPUFUNC(op_807b_0), 0, 32891 }, /* OR.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_807c_0), 0, 32892 }, /* OR.W #.W,Dn */ +{ CPUFUNC(op_8080_0), 0, 32896 }, /* OR.L Dn,Dn */ +{ CPUFUNC(op_8090_0), 0, 32912 }, /* OR.L (An),Dn */ +{ CPUFUNC(op_8098_0), 0, 32920 }, /* OR.L (An)+,Dn */ +{ CPUFUNC(op_80a0_0), 0, 32928 }, /* OR.L -(An),Dn */ +{ CPUFUNC(op_80a8_0), 0, 32936 }, /* OR.L (d16,An),Dn */ +{ CPUFUNC(op_80b0_0), 0, 32944 }, /* OR.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_80b8_0), 0, 32952 }, /* OR.L (xxx).W,Dn */ +{ CPUFUNC(op_80b9_0), 0, 32953 }, /* OR.L (xxx).L,Dn */ +{ CPUFUNC(op_80ba_0), 0, 32954 }, /* OR.L (d16,PC),Dn */ +{ CPUFUNC(op_80bb_0), 0, 32955 }, /* OR.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_80bc_0), 0, 32956 }, /* OR.L #.L,Dn */ +{ CPUFUNC(op_80c0_0), 0, 32960 }, /* DIVU.W Dn,Dn */ +{ CPUFUNC(op_80d0_0), 0, 32976 }, /* DIVU.W (An),Dn */ +{ CPUFUNC(op_80d8_0), 0, 32984 }, /* DIVU.W (An)+,Dn */ +{ CPUFUNC(op_80e0_0), 0, 32992 }, /* DIVU.W -(An),Dn */ +{ CPUFUNC(op_80e8_0), 0, 33000 }, /* DIVU.W (d16,An),Dn */ +{ CPUFUNC(op_80f0_0), 0, 33008 }, /* DIVU.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_80f8_0), 0, 33016 }, /* DIVU.W (xxx).W,Dn */ +{ CPUFUNC(op_80f9_0), 0, 33017 }, /* DIVU.W (xxx).L,Dn */ +{ CPUFUNC(op_80fa_0), 0, 33018 }, /* DIVU.W (d16,PC),Dn */ +{ CPUFUNC(op_80fb_0), 0, 33019 }, /* DIVU.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_80fc_0), 0, 33020 }, /* DIVU.W #.W,Dn */ +{ CPUFUNC(op_8100_0), 0, 33024 }, /* SBCD.B Dn,Dn */ +{ CPUFUNC(op_8108_0), 0, 33032 }, /* SBCD.B -(An),-(An) */ +{ CPUFUNC(op_8110_0), 0, 33040 }, /* OR.B Dn,(An) */ +{ CPUFUNC(op_8118_0), 0, 33048 }, /* OR.B Dn,(An)+ */ +{ CPUFUNC(op_8120_0), 0, 33056 }, /* OR.B Dn,-(An) */ +{ CPUFUNC(op_8128_0), 0, 33064 }, /* OR.B Dn,(d16,An) */ +{ CPUFUNC(op_8130_0), 0, 33072 }, /* OR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_8138_0), 0, 33080 }, /* OR.B Dn,(xxx).W */ +{ CPUFUNC(op_8139_0), 0, 33081 }, /* OR.B Dn,(xxx).L */ +{ CPUFUNC_FF(op_8140_0), 0, 33088 }, /* PACK.L Dn,Dn */ +{ CPUFUNC_FF(op_8148_0), 0, 33096 }, /* PACK.L -(An),-(An) */ +{ CPUFUNC(op_8150_0), 0, 33104 }, /* OR.W Dn,(An) */ +{ CPUFUNC(op_8158_0), 0, 33112 }, /* OR.W Dn,(An)+ */ +{ CPUFUNC(op_8160_0), 0, 33120 }, /* OR.W Dn,-(An) */ +{ CPUFUNC(op_8168_0), 0, 33128 }, /* OR.W Dn,(d16,An) */ +{ CPUFUNC(op_8170_0), 0, 33136 }, /* OR.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_8178_0), 0, 33144 }, /* OR.W Dn,(xxx).W */ +{ CPUFUNC(op_8179_0), 0, 33145 }, /* OR.W Dn,(xxx).L */ +{ CPUFUNC_FF(op_8180_0), 0, 33152 }, /* UNPK.L Dn,Dn */ +{ CPUFUNC_FF(op_8188_0), 0, 33160 }, /* UNPK.L -(An),-(An) */ +{ CPUFUNC(op_8190_0), 0, 33168 }, /* OR.L Dn,(An) */ +{ CPUFUNC(op_8198_0), 0, 33176 }, /* OR.L Dn,(An)+ */ +{ CPUFUNC(op_81a0_0), 0, 33184 }, /* OR.L Dn,-(An) */ +{ CPUFUNC(op_81a8_0), 0, 33192 }, /* OR.L Dn,(d16,An) */ +{ CPUFUNC(op_81b0_0), 0, 33200 }, /* OR.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_81b8_0), 0, 33208 }, /* OR.L Dn,(xxx).W */ +{ CPUFUNC(op_81b9_0), 0, 33209 }, /* OR.L Dn,(xxx).L */ +{ CPUFUNC(op_81c0_0), 0, 33216 }, /* DIVS.W Dn,Dn */ +{ CPUFUNC(op_81d0_0), 0, 33232 }, /* DIVS.W (An),Dn */ +{ CPUFUNC(op_81d8_0), 0, 33240 }, /* DIVS.W (An)+,Dn */ +{ CPUFUNC(op_81e0_0), 0, 33248 }, /* DIVS.W -(An),Dn */ +{ CPUFUNC(op_81e8_0), 0, 33256 }, /* DIVS.W (d16,An),Dn */ +{ CPUFUNC(op_81f0_0), 0, 33264 }, /* DIVS.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_81f8_0), 0, 33272 }, /* DIVS.W (xxx).W,Dn */ +{ CPUFUNC(op_81f9_0), 0, 33273 }, /* DIVS.W (xxx).L,Dn */ +{ CPUFUNC(op_81fa_0), 0, 33274 }, /* DIVS.W (d16,PC),Dn */ +{ CPUFUNC(op_81fb_0), 0, 33275 }, /* DIVS.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_81fc_0), 0, 33276 }, /* DIVS.W #.W,Dn */ +{ CPUFUNC(op_9000_0), 0, 36864 }, /* SUB.B Dn,Dn */ +{ CPUFUNC(op_9010_0), 0, 36880 }, /* SUB.B (An),Dn */ +{ CPUFUNC(op_9018_0), 0, 36888 }, /* SUB.B (An)+,Dn */ +{ CPUFUNC(op_9020_0), 0, 36896 }, /* SUB.B -(An),Dn */ +{ CPUFUNC(op_9028_0), 0, 36904 }, /* SUB.B (d16,An),Dn */ +{ CPUFUNC(op_9030_0), 0, 36912 }, /* SUB.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_9038_0), 0, 36920 }, /* SUB.B (xxx).W,Dn */ +{ CPUFUNC(op_9039_0), 0, 36921 }, /* SUB.B (xxx).L,Dn */ +{ CPUFUNC(op_903a_0), 0, 36922 }, /* SUB.B (d16,PC),Dn */ +{ CPUFUNC(op_903b_0), 0, 36923 }, /* SUB.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_903c_0), 0, 36924 }, /* SUB.B #.B,Dn */ +{ CPUFUNC(op_9040_0), 0, 36928 }, /* SUB.W Dn,Dn */ +{ CPUFUNC(op_9048_0), 0, 36936 }, /* SUB.W An,Dn */ +{ CPUFUNC(op_9050_0), 0, 36944 }, /* SUB.W (An),Dn */ +{ CPUFUNC(op_9058_0), 0, 36952 }, /* SUB.W (An)+,Dn */ +{ CPUFUNC(op_9060_0), 0, 36960 }, /* SUB.W -(An),Dn */ +{ CPUFUNC(op_9068_0), 0, 36968 }, /* SUB.W (d16,An),Dn */ +{ CPUFUNC(op_9070_0), 0, 36976 }, /* SUB.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_9078_0), 0, 36984 }, /* SUB.W (xxx).W,Dn */ +{ CPUFUNC(op_9079_0), 0, 36985 }, /* SUB.W (xxx).L,Dn */ +{ CPUFUNC(op_907a_0), 0, 36986 }, /* SUB.W (d16,PC),Dn */ +{ CPUFUNC(op_907b_0), 0, 36987 }, /* SUB.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_907c_0), 0, 36988 }, /* SUB.W #.W,Dn */ +{ CPUFUNC(op_9080_0), 0, 36992 }, /* SUB.L Dn,Dn */ +{ CPUFUNC(op_9088_0), 0, 37000 }, /* SUB.L An,Dn */ +{ CPUFUNC(op_9090_0), 0, 37008 }, /* SUB.L (An),Dn */ +{ CPUFUNC(op_9098_0), 0, 37016 }, /* SUB.L (An)+,Dn */ +{ CPUFUNC(op_90a0_0), 0, 37024 }, /* SUB.L -(An),Dn */ +{ CPUFUNC(op_90a8_0), 0, 37032 }, /* SUB.L (d16,An),Dn */ +{ CPUFUNC(op_90b0_0), 0, 37040 }, /* SUB.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_90b8_0), 0, 37048 }, /* SUB.L (xxx).W,Dn */ +{ CPUFUNC(op_90b9_0), 0, 37049 }, /* SUB.L (xxx).L,Dn */ +{ CPUFUNC(op_90ba_0), 0, 37050 }, /* SUB.L (d16,PC),Dn */ +{ CPUFUNC(op_90bb_0), 0, 37051 }, /* SUB.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_90bc_0), 0, 37052 }, /* SUB.L #.L,Dn */ +{ CPUFUNC_FF(op_90c0_0), 0, 37056 }, /* SUBA.W Dn,An */ +{ CPUFUNC_FF(op_90c8_0), 0, 37064 }, /* SUBA.W An,An */ +{ CPUFUNC_FF(op_90d0_0), 0, 37072 }, /* SUBA.W (An),An */ +{ CPUFUNC_FF(op_90d8_0), 0, 37080 }, /* SUBA.W (An)+,An */ +{ CPUFUNC_FF(op_90e0_0), 0, 37088 }, /* SUBA.W -(An),An */ +{ CPUFUNC_FF(op_90e8_0), 0, 37096 }, /* SUBA.W (d16,An),An */ +{ CPUFUNC_FF(op_90f0_0), 0, 37104 }, /* SUBA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_90f8_0), 0, 37112 }, /* SUBA.W (xxx).W,An */ +{ CPUFUNC_FF(op_90f9_0), 0, 37113 }, /* SUBA.W (xxx).L,An */ +{ CPUFUNC_FF(op_90fa_0), 0, 37114 }, /* SUBA.W (d16,PC),An */ +{ CPUFUNC_FF(op_90fb_0), 0, 37115 }, /* SUBA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_90fc_0), 0, 37116 }, /* SUBA.W #.W,An */ +{ CPUFUNC(op_9100_0), 0, 37120 }, /* SUBX.B Dn,Dn */ +{ CPUFUNC(op_9108_0), 0, 37128 }, /* SUBX.B -(An),-(An) */ +{ CPUFUNC(op_9110_0), 0, 37136 }, /* SUB.B Dn,(An) */ +{ CPUFUNC(op_9118_0), 0, 37144 }, /* SUB.B Dn,(An)+ */ +{ CPUFUNC(op_9120_0), 0, 37152 }, /* SUB.B Dn,-(An) */ +{ CPUFUNC(op_9128_0), 0, 37160 }, /* SUB.B Dn,(d16,An) */ +{ CPUFUNC(op_9130_0), 0, 37168 }, /* SUB.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_9138_0), 0, 37176 }, /* SUB.B Dn,(xxx).W */ +{ CPUFUNC(op_9139_0), 0, 37177 }, /* SUB.B Dn,(xxx).L */ +{ CPUFUNC(op_9140_0), 0, 37184 }, /* SUBX.W Dn,Dn */ +{ CPUFUNC(op_9148_0), 0, 37192 }, /* SUBX.W -(An),-(An) */ +{ CPUFUNC(op_9150_0), 0, 37200 }, /* SUB.W Dn,(An) */ +{ CPUFUNC(op_9158_0), 0, 37208 }, /* SUB.W Dn,(An)+ */ +{ CPUFUNC(op_9160_0), 0, 37216 }, /* SUB.W Dn,-(An) */ +{ CPUFUNC(op_9168_0), 0, 37224 }, /* SUB.W Dn,(d16,An) */ +{ CPUFUNC(op_9170_0), 0, 37232 }, /* SUB.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_9178_0), 0, 37240 }, /* SUB.W Dn,(xxx).W */ +{ CPUFUNC(op_9179_0), 0, 37241 }, /* SUB.W Dn,(xxx).L */ +{ CPUFUNC(op_9180_0), 0, 37248 }, /* SUBX.L Dn,Dn */ +{ CPUFUNC(op_9188_0), 0, 37256 }, /* SUBX.L -(An),-(An) */ +{ CPUFUNC(op_9190_0), 0, 37264 }, /* SUB.L Dn,(An) */ +{ CPUFUNC(op_9198_0), 0, 37272 }, /* SUB.L Dn,(An)+ */ +{ CPUFUNC(op_91a0_0), 0, 37280 }, /* SUB.L Dn,-(An) */ +{ CPUFUNC(op_91a8_0), 0, 37288 }, /* SUB.L Dn,(d16,An) */ +{ CPUFUNC(op_91b0_0), 0, 37296 }, /* SUB.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_91b8_0), 0, 37304 }, /* SUB.L Dn,(xxx).W */ +{ CPUFUNC(op_91b9_0), 0, 37305 }, /* SUB.L Dn,(xxx).L */ +{ CPUFUNC_FF(op_91c0_0), 0, 37312 }, /* SUBA.L Dn,An */ +{ CPUFUNC_FF(op_91c8_0), 0, 37320 }, /* SUBA.L An,An */ +{ CPUFUNC_FF(op_91d0_0), 0, 37328 }, /* SUBA.L (An),An */ +{ CPUFUNC_FF(op_91d8_0), 0, 37336 }, /* SUBA.L (An)+,An */ +{ CPUFUNC_FF(op_91e0_0), 0, 37344 }, /* SUBA.L -(An),An */ +{ CPUFUNC_FF(op_91e8_0), 0, 37352 }, /* SUBA.L (d16,An),An */ +{ CPUFUNC_FF(op_91f0_0), 0, 37360 }, /* SUBA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_91f8_0), 0, 37368 }, /* SUBA.L (xxx).W,An */ +{ CPUFUNC_FF(op_91f9_0), 0, 37369 }, /* SUBA.L (xxx).L,An */ +{ CPUFUNC_FF(op_91fa_0), 0, 37370 }, /* SUBA.L (d16,PC),An */ +{ CPUFUNC_FF(op_91fb_0), 0, 37371 }, /* SUBA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_91fc_0), 0, 37372 }, /* SUBA.L #.L,An */ +{ CPUFUNC(op_b000_0), 0, 45056 }, /* CMP.B Dn,Dn */ +{ CPUFUNC(op_b010_0), 0, 45072 }, /* CMP.B (An),Dn */ +{ CPUFUNC(op_b018_0), 0, 45080 }, /* CMP.B (An)+,Dn */ +{ CPUFUNC(op_b020_0), 0, 45088 }, /* CMP.B -(An),Dn */ +{ CPUFUNC(op_b028_0), 0, 45096 }, /* CMP.B (d16,An),Dn */ +{ CPUFUNC(op_b030_0), 0, 45104 }, /* CMP.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_b038_0), 0, 45112 }, /* CMP.B (xxx).W,Dn */ +{ CPUFUNC(op_b039_0), 0, 45113 }, /* CMP.B (xxx).L,Dn */ +{ CPUFUNC(op_b03a_0), 0, 45114 }, /* CMP.B (d16,PC),Dn */ +{ CPUFUNC(op_b03b_0), 0, 45115 }, /* CMP.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b03c_0), 0, 45116 }, /* CMP.B #.B,Dn */ +{ CPUFUNC(op_b040_0), 0, 45120 }, /* CMP.W Dn,Dn */ +{ CPUFUNC(op_b048_0), 0, 45128 }, /* CMP.W An,Dn */ +{ CPUFUNC(op_b050_0), 0, 45136 }, /* CMP.W (An),Dn */ +{ CPUFUNC(op_b058_0), 0, 45144 }, /* CMP.W (An)+,Dn */ +{ CPUFUNC(op_b060_0), 0, 45152 }, /* CMP.W -(An),Dn */ +{ CPUFUNC(op_b068_0), 0, 45160 }, /* CMP.W (d16,An),Dn */ +{ CPUFUNC(op_b070_0), 0, 45168 }, /* CMP.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_b078_0), 0, 45176 }, /* CMP.W (xxx).W,Dn */ +{ CPUFUNC(op_b079_0), 0, 45177 }, /* CMP.W (xxx).L,Dn */ +{ CPUFUNC(op_b07a_0), 0, 45178 }, /* CMP.W (d16,PC),Dn */ +{ CPUFUNC(op_b07b_0), 0, 45179 }, /* CMP.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b07c_0), 0, 45180 }, /* CMP.W #.W,Dn */ +{ CPUFUNC(op_b080_0), 0, 45184 }, /* CMP.L Dn,Dn */ +{ CPUFUNC(op_b088_0), 0, 45192 }, /* CMP.L An,Dn */ +{ CPUFUNC(op_b090_0), 0, 45200 }, /* CMP.L (An),Dn */ +{ CPUFUNC(op_b098_0), 0, 45208 }, /* CMP.L (An)+,Dn */ +{ CPUFUNC(op_b0a0_0), 0, 45216 }, /* CMP.L -(An),Dn */ +{ CPUFUNC(op_b0a8_0), 0, 45224 }, /* CMP.L (d16,An),Dn */ +{ CPUFUNC(op_b0b0_0), 0, 45232 }, /* CMP.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_b0b8_0), 0, 45240 }, /* CMP.L (xxx).W,Dn */ +{ CPUFUNC(op_b0b9_0), 0, 45241 }, /* CMP.L (xxx).L,Dn */ +{ CPUFUNC(op_b0ba_0), 0, 45242 }, /* CMP.L (d16,PC),Dn */ +{ CPUFUNC(op_b0bb_0), 0, 45243 }, /* CMP.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b0bc_0), 0, 45244 }, /* CMP.L #.L,Dn */ +{ CPUFUNC(op_b0c0_0), 0, 45248 }, /* CMPA.W Dn,An */ +{ CPUFUNC(op_b0c8_0), 0, 45256 }, /* CMPA.W An,An */ +{ CPUFUNC(op_b0d0_0), 0, 45264 }, /* CMPA.W (An),An */ +{ CPUFUNC(op_b0d8_0), 0, 45272 }, /* CMPA.W (An)+,An */ +{ CPUFUNC(op_b0e0_0), 0, 45280 }, /* CMPA.W -(An),An */ +{ CPUFUNC(op_b0e8_0), 0, 45288 }, /* CMPA.W (d16,An),An */ +{ CPUFUNC(op_b0f0_0), 0, 45296 }, /* CMPA.W (d8,An,Xn),An */ +{ CPUFUNC(op_b0f8_0), 0, 45304 }, /* CMPA.W (xxx).W,An */ +{ CPUFUNC(op_b0f9_0), 0, 45305 }, /* CMPA.W (xxx).L,An */ +{ CPUFUNC(op_b0fa_0), 0, 45306 }, /* CMPA.W (d16,PC),An */ +{ CPUFUNC(op_b0fb_0), 0, 45307 }, /* CMPA.W (d8,PC,Xn),An */ +{ CPUFUNC(op_b0fc_0), 0, 45308 }, /* CMPA.W #.W,An */ +{ CPUFUNC(op_b100_0), 0, 45312 }, /* EOR.B Dn,Dn */ +{ CPUFUNC(op_b108_0), 0, 45320 }, /* CMPM.B (An)+,(An)+ */ +{ CPUFUNC(op_b110_0), 0, 45328 }, /* EOR.B Dn,(An) */ +{ CPUFUNC(op_b118_0), 0, 45336 }, /* EOR.B Dn,(An)+ */ +{ CPUFUNC(op_b120_0), 0, 45344 }, /* EOR.B Dn,-(An) */ +{ CPUFUNC(op_b128_0), 0, 45352 }, /* EOR.B Dn,(d16,An) */ +{ CPUFUNC(op_b130_0), 0, 45360 }, /* EOR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b138_0), 0, 45368 }, /* EOR.B Dn,(xxx).W */ +{ CPUFUNC(op_b139_0), 0, 45369 }, /* EOR.B Dn,(xxx).L */ +{ CPUFUNC(op_b140_0), 0, 45376 }, /* EOR.W Dn,Dn */ +{ CPUFUNC(op_b148_0), 0, 45384 }, /* CMPM.W (An)+,(An)+ */ +{ CPUFUNC(op_b150_0), 0, 45392 }, /* EOR.W Dn,(An) */ +{ CPUFUNC(op_b158_0), 0, 45400 }, /* EOR.W Dn,(An)+ */ +{ CPUFUNC(op_b160_0), 0, 45408 }, /* EOR.W Dn,-(An) */ +{ CPUFUNC(op_b168_0), 0, 45416 }, /* EOR.W Dn,(d16,An) */ +{ CPUFUNC(op_b170_0), 0, 45424 }, /* EOR.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b178_0), 0, 45432 }, /* EOR.W Dn,(xxx).W */ +{ CPUFUNC(op_b179_0), 0, 45433 }, /* EOR.W Dn,(xxx).L */ +{ CPUFUNC(op_b180_0), 0, 45440 }, /* EOR.L Dn,Dn */ +{ CPUFUNC(op_b188_0), 0, 45448 }, /* CMPM.L (An)+,(An)+ */ +{ CPUFUNC(op_b190_0), 0, 45456 }, /* EOR.L Dn,(An) */ +{ CPUFUNC(op_b198_0), 0, 45464 }, /* EOR.L Dn,(An)+ */ +{ CPUFUNC(op_b1a0_0), 0, 45472 }, /* EOR.L Dn,-(An) */ +{ CPUFUNC(op_b1a8_0), 0, 45480 }, /* EOR.L Dn,(d16,An) */ +{ CPUFUNC(op_b1b0_0), 0, 45488 }, /* EOR.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b1b8_0), 0, 45496 }, /* EOR.L Dn,(xxx).W */ +{ CPUFUNC(op_b1b9_0), 0, 45497 }, /* EOR.L Dn,(xxx).L */ +{ CPUFUNC(op_b1c0_0), 0, 45504 }, /* CMPA.L Dn,An */ +{ CPUFUNC(op_b1c8_0), 0, 45512 }, /* CMPA.L An,An */ +{ CPUFUNC(op_b1d0_0), 0, 45520 }, /* CMPA.L (An),An */ +{ CPUFUNC(op_b1d8_0), 0, 45528 }, /* CMPA.L (An)+,An */ +{ CPUFUNC(op_b1e0_0), 0, 45536 }, /* CMPA.L -(An),An */ +{ CPUFUNC(op_b1e8_0), 0, 45544 }, /* CMPA.L (d16,An),An */ +{ CPUFUNC(op_b1f0_0), 0, 45552 }, /* CMPA.L (d8,An,Xn),An */ +{ CPUFUNC(op_b1f8_0), 0, 45560 }, /* CMPA.L (xxx).W,An */ +{ CPUFUNC(op_b1f9_0), 0, 45561 }, /* CMPA.L (xxx).L,An */ +{ CPUFUNC(op_b1fa_0), 0, 45562 }, /* CMPA.L (d16,PC),An */ +{ CPUFUNC(op_b1fb_0), 0, 45563 }, /* CMPA.L (d8,PC,Xn),An */ +{ CPUFUNC(op_b1fc_0), 0, 45564 }, /* CMPA.L #.L,An */ +{ CPUFUNC(op_c000_0), 0, 49152 }, /* AND.B Dn,Dn */ +{ CPUFUNC(op_c010_0), 0, 49168 }, /* AND.B (An),Dn */ +{ CPUFUNC(op_c018_0), 0, 49176 }, /* AND.B (An)+,Dn */ +{ CPUFUNC(op_c020_0), 0, 49184 }, /* AND.B -(An),Dn */ +{ CPUFUNC(op_c028_0), 0, 49192 }, /* AND.B (d16,An),Dn */ +{ CPUFUNC(op_c030_0), 0, 49200 }, /* AND.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_c038_0), 0, 49208 }, /* AND.B (xxx).W,Dn */ +{ CPUFUNC(op_c039_0), 0, 49209 }, /* AND.B (xxx).L,Dn */ +{ CPUFUNC(op_c03a_0), 0, 49210 }, /* AND.B (d16,PC),Dn */ +{ CPUFUNC(op_c03b_0), 0, 49211 }, /* AND.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c03c_0), 0, 49212 }, /* AND.B #.B,Dn */ +{ CPUFUNC(op_c040_0), 0, 49216 }, /* AND.W Dn,Dn */ +{ CPUFUNC(op_c050_0), 0, 49232 }, /* AND.W (An),Dn */ +{ CPUFUNC(op_c058_0), 0, 49240 }, /* AND.W (An)+,Dn */ +{ CPUFUNC(op_c060_0), 0, 49248 }, /* AND.W -(An),Dn */ +{ CPUFUNC(op_c068_0), 0, 49256 }, /* AND.W (d16,An),Dn */ +{ CPUFUNC(op_c070_0), 0, 49264 }, /* AND.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c078_0), 0, 49272 }, /* AND.W (xxx).W,Dn */ +{ CPUFUNC(op_c079_0), 0, 49273 }, /* AND.W (xxx).L,Dn */ +{ CPUFUNC(op_c07a_0), 0, 49274 }, /* AND.W (d16,PC),Dn */ +{ CPUFUNC(op_c07b_0), 0, 49275 }, /* AND.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c07c_0), 0, 49276 }, /* AND.W #.W,Dn */ +{ CPUFUNC(op_c080_0), 0, 49280 }, /* AND.L Dn,Dn */ +{ CPUFUNC(op_c090_0), 0, 49296 }, /* AND.L (An),Dn */ +{ CPUFUNC(op_c098_0), 0, 49304 }, /* AND.L (An)+,Dn */ +{ CPUFUNC(op_c0a0_0), 0, 49312 }, /* AND.L -(An),Dn */ +{ CPUFUNC(op_c0a8_0), 0, 49320 }, /* AND.L (d16,An),Dn */ +{ CPUFUNC(op_c0b0_0), 0, 49328 }, /* AND.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_c0b8_0), 0, 49336 }, /* AND.L (xxx).W,Dn */ +{ CPUFUNC(op_c0b9_0), 0, 49337 }, /* AND.L (xxx).L,Dn */ +{ CPUFUNC(op_c0ba_0), 0, 49338 }, /* AND.L (d16,PC),Dn */ +{ CPUFUNC(op_c0bb_0), 0, 49339 }, /* AND.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c0bc_0), 0, 49340 }, /* AND.L #.L,Dn */ +{ CPUFUNC(op_c0c0_0), 0, 49344 }, /* MULU.W Dn,Dn */ +{ CPUFUNC(op_c0d0_0), 0, 49360 }, /* MULU.W (An),Dn */ +{ CPUFUNC(op_c0d8_0), 0, 49368 }, /* MULU.W (An)+,Dn */ +{ CPUFUNC(op_c0e0_0), 0, 49376 }, /* MULU.W -(An),Dn */ +{ CPUFUNC(op_c0e8_0), 0, 49384 }, /* MULU.W (d16,An),Dn */ +{ CPUFUNC(op_c0f0_0), 0, 49392 }, /* MULU.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c0f8_0), 0, 49400 }, /* MULU.W (xxx).W,Dn */ +{ CPUFUNC(op_c0f9_0), 0, 49401 }, /* MULU.W (xxx).L,Dn */ +{ CPUFUNC(op_c0fa_0), 0, 49402 }, /* MULU.W (d16,PC),Dn */ +{ CPUFUNC(op_c0fb_0), 0, 49403 }, /* MULU.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c0fc_0), 0, 49404 }, /* MULU.W #.W,Dn */ +{ CPUFUNC(op_c100_0), 0, 49408 }, /* ABCD.B Dn,Dn */ +{ CPUFUNC(op_c108_0), 0, 49416 }, /* ABCD.B -(An),-(An) */ +{ CPUFUNC(op_c110_0), 0, 49424 }, /* AND.B Dn,(An) */ +{ CPUFUNC(op_c118_0), 0, 49432 }, /* AND.B Dn,(An)+ */ +{ CPUFUNC(op_c120_0), 0, 49440 }, /* AND.B Dn,-(An) */ +{ CPUFUNC(op_c128_0), 0, 49448 }, /* AND.B Dn,(d16,An) */ +{ CPUFUNC(op_c130_0), 0, 49456 }, /* AND.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c138_0), 0, 49464 }, /* AND.B Dn,(xxx).W */ +{ CPUFUNC(op_c139_0), 0, 49465 }, /* AND.B Dn,(xxx).L */ +{ CPUFUNC_FF(op_c140_0), 0, 49472 }, /* EXG.L Dn,Dn */ +{ CPUFUNC_FF(op_c148_0), 0, 49480 }, /* EXG.L An,An */ +{ CPUFUNC(op_c150_0), 0, 49488 }, /* AND.W Dn,(An) */ +{ CPUFUNC(op_c158_0), 0, 49496 }, /* AND.W Dn,(An)+ */ +{ CPUFUNC(op_c160_0), 0, 49504 }, /* AND.W Dn,-(An) */ +{ CPUFUNC(op_c168_0), 0, 49512 }, /* AND.W Dn,(d16,An) */ +{ CPUFUNC(op_c170_0), 0, 49520 }, /* AND.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c178_0), 0, 49528 }, /* AND.W Dn,(xxx).W */ +{ CPUFUNC(op_c179_0), 0, 49529 }, /* AND.W Dn,(xxx).L */ +{ CPUFUNC_FF(op_c188_0), 0, 49544 }, /* EXG.L Dn,An */ +{ CPUFUNC(op_c190_0), 0, 49552 }, /* AND.L Dn,(An) */ +{ CPUFUNC(op_c198_0), 0, 49560 }, /* AND.L Dn,(An)+ */ +{ CPUFUNC(op_c1a0_0), 0, 49568 }, /* AND.L Dn,-(An) */ +{ CPUFUNC(op_c1a8_0), 0, 49576 }, /* AND.L Dn,(d16,An) */ +{ CPUFUNC(op_c1b0_0), 0, 49584 }, /* AND.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c1b8_0), 0, 49592 }, /* AND.L Dn,(xxx).W */ +{ CPUFUNC(op_c1b9_0), 0, 49593 }, /* AND.L Dn,(xxx).L */ +{ CPUFUNC(op_c1c0_0), 0, 49600 }, /* MULS.W Dn,Dn */ +{ CPUFUNC(op_c1d0_0), 0, 49616 }, /* MULS.W (An),Dn */ +{ CPUFUNC(op_c1d8_0), 0, 49624 }, /* MULS.W (An)+,Dn */ +{ CPUFUNC(op_c1e0_0), 0, 49632 }, /* MULS.W -(An),Dn */ +{ CPUFUNC(op_c1e8_0), 0, 49640 }, /* MULS.W (d16,An),Dn */ +{ CPUFUNC(op_c1f0_0), 0, 49648 }, /* MULS.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c1f8_0), 0, 49656 }, /* MULS.W (xxx).W,Dn */ +{ CPUFUNC(op_c1f9_0), 0, 49657 }, /* MULS.W (xxx).L,Dn */ +{ CPUFUNC(op_c1fa_0), 0, 49658 }, /* MULS.W (d16,PC),Dn */ +{ CPUFUNC(op_c1fb_0), 0, 49659 }, /* MULS.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c1fc_0), 0, 49660 }, /* MULS.W #.W,Dn */ +{ CPUFUNC(op_d000_0), 0, 53248 }, /* ADD.B Dn,Dn */ +{ CPUFUNC(op_d010_0), 0, 53264 }, /* ADD.B (An),Dn */ +{ CPUFUNC(op_d018_0), 0, 53272 }, /* ADD.B (An)+,Dn */ +{ CPUFUNC(op_d020_0), 0, 53280 }, /* ADD.B -(An),Dn */ +{ CPUFUNC(op_d028_0), 0, 53288 }, /* ADD.B (d16,An),Dn */ +{ CPUFUNC(op_d030_0), 0, 53296 }, /* ADD.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_d038_0), 0, 53304 }, /* ADD.B (xxx).W,Dn */ +{ CPUFUNC(op_d039_0), 0, 53305 }, /* ADD.B (xxx).L,Dn */ +{ CPUFUNC(op_d03a_0), 0, 53306 }, /* ADD.B (d16,PC),Dn */ +{ CPUFUNC(op_d03b_0), 0, 53307 }, /* ADD.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d03c_0), 0, 53308 }, /* ADD.B #.B,Dn */ +{ CPUFUNC(op_d040_0), 0, 53312 }, /* ADD.W Dn,Dn */ +{ CPUFUNC(op_d048_0), 0, 53320 }, /* ADD.W An,Dn */ +{ CPUFUNC(op_d050_0), 0, 53328 }, /* ADD.W (An),Dn */ +{ CPUFUNC(op_d058_0), 0, 53336 }, /* ADD.W (An)+,Dn */ +{ CPUFUNC(op_d060_0), 0, 53344 }, /* ADD.W -(An),Dn */ +{ CPUFUNC(op_d068_0), 0, 53352 }, /* ADD.W (d16,An),Dn */ +{ CPUFUNC(op_d070_0), 0, 53360 }, /* ADD.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_d078_0), 0, 53368 }, /* ADD.W (xxx).W,Dn */ +{ CPUFUNC(op_d079_0), 0, 53369 }, /* ADD.W (xxx).L,Dn */ +{ CPUFUNC(op_d07a_0), 0, 53370 }, /* ADD.W (d16,PC),Dn */ +{ CPUFUNC(op_d07b_0), 0, 53371 }, /* ADD.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d07c_0), 0, 53372 }, /* ADD.W #.W,Dn */ +{ CPUFUNC(op_d080_0), 0, 53376 }, /* ADD.L Dn,Dn */ +{ CPUFUNC(op_d088_0), 0, 53384 }, /* ADD.L An,Dn */ +{ CPUFUNC(op_d090_0), 0, 53392 }, /* ADD.L (An),Dn */ +{ CPUFUNC(op_d098_0), 0, 53400 }, /* ADD.L (An)+,Dn */ +{ CPUFUNC(op_d0a0_0), 0, 53408 }, /* ADD.L -(An),Dn */ +{ CPUFUNC(op_d0a8_0), 0, 53416 }, /* ADD.L (d16,An),Dn */ +{ CPUFUNC(op_d0b0_0), 0, 53424 }, /* ADD.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_d0b8_0), 0, 53432 }, /* ADD.L (xxx).W,Dn */ +{ CPUFUNC(op_d0b9_0), 0, 53433 }, /* ADD.L (xxx).L,Dn */ +{ CPUFUNC(op_d0ba_0), 0, 53434 }, /* ADD.L (d16,PC),Dn */ +{ CPUFUNC(op_d0bb_0), 0, 53435 }, /* ADD.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d0bc_0), 0, 53436 }, /* ADD.L #.L,Dn */ +{ CPUFUNC_FF(op_d0c0_0), 0, 53440 }, /* ADDA.W Dn,An */ +{ CPUFUNC_FF(op_d0c8_0), 0, 53448 }, /* ADDA.W An,An */ +{ CPUFUNC_FF(op_d0d0_0), 0, 53456 }, /* ADDA.W (An),An */ +{ CPUFUNC_FF(op_d0d8_0), 0, 53464 }, /* ADDA.W (An)+,An */ +{ CPUFUNC_FF(op_d0e0_0), 0, 53472 }, /* ADDA.W -(An),An */ +{ CPUFUNC_FF(op_d0e8_0), 0, 53480 }, /* ADDA.W (d16,An),An */ +{ CPUFUNC_FF(op_d0f0_0), 0, 53488 }, /* ADDA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_d0f8_0), 0, 53496 }, /* ADDA.W (xxx).W,An */ +{ CPUFUNC_FF(op_d0f9_0), 0, 53497 }, /* ADDA.W (xxx).L,An */ +{ CPUFUNC_FF(op_d0fa_0), 0, 53498 }, /* ADDA.W (d16,PC),An */ +{ CPUFUNC_FF(op_d0fb_0), 0, 53499 }, /* ADDA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_d0fc_0), 0, 53500 }, /* ADDA.W #.W,An */ +{ CPUFUNC(op_d100_0), 0, 53504 }, /* ADDX.B Dn,Dn */ +{ CPUFUNC(op_d108_0), 0, 53512 }, /* ADDX.B -(An),-(An) */ +{ CPUFUNC(op_d110_0), 0, 53520 }, /* ADD.B Dn,(An) */ +{ CPUFUNC(op_d118_0), 0, 53528 }, /* ADD.B Dn,(An)+ */ +{ CPUFUNC(op_d120_0), 0, 53536 }, /* ADD.B Dn,-(An) */ +{ CPUFUNC(op_d128_0), 0, 53544 }, /* ADD.B Dn,(d16,An) */ +{ CPUFUNC(op_d130_0), 0, 53552 }, /* ADD.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d138_0), 0, 53560 }, /* ADD.B Dn,(xxx).W */ +{ CPUFUNC(op_d139_0), 0, 53561 }, /* ADD.B Dn,(xxx).L */ +{ CPUFUNC(op_d140_0), 0, 53568 }, /* ADDX.W Dn,Dn */ +{ CPUFUNC(op_d148_0), 0, 53576 }, /* ADDX.W -(An),-(An) */ +{ CPUFUNC(op_d150_0), 0, 53584 }, /* ADD.W Dn,(An) */ +{ CPUFUNC(op_d158_0), 0, 53592 }, /* ADD.W Dn,(An)+ */ +{ CPUFUNC(op_d160_0), 0, 53600 }, /* ADD.W Dn,-(An) */ +{ CPUFUNC(op_d168_0), 0, 53608 }, /* ADD.W Dn,(d16,An) */ +{ CPUFUNC(op_d170_0), 0, 53616 }, /* ADD.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d178_0), 0, 53624 }, /* ADD.W Dn,(xxx).W */ +{ CPUFUNC(op_d179_0), 0, 53625 }, /* ADD.W Dn,(xxx).L */ +{ CPUFUNC(op_d180_0), 0, 53632 }, /* ADDX.L Dn,Dn */ +{ CPUFUNC(op_d188_0), 0, 53640 }, /* ADDX.L -(An),-(An) */ +{ CPUFUNC(op_d190_0), 0, 53648 }, /* ADD.L Dn,(An) */ +{ CPUFUNC(op_d198_0), 0, 53656 }, /* ADD.L Dn,(An)+ */ +{ CPUFUNC(op_d1a0_0), 0, 53664 }, /* ADD.L Dn,-(An) */ +{ CPUFUNC(op_d1a8_0), 0, 53672 }, /* ADD.L Dn,(d16,An) */ +{ CPUFUNC(op_d1b0_0), 0, 53680 }, /* ADD.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d1b8_0), 0, 53688 }, /* ADD.L Dn,(xxx).W */ +{ CPUFUNC(op_d1b9_0), 0, 53689 }, /* ADD.L Dn,(xxx).L */ +{ CPUFUNC_FF(op_d1c0_0), 0, 53696 }, /* ADDA.L Dn,An */ +{ CPUFUNC_FF(op_d1c8_0), 0, 53704 }, /* ADDA.L An,An */ +{ CPUFUNC_FF(op_d1d0_0), 0, 53712 }, /* ADDA.L (An),An */ +{ CPUFUNC_FF(op_d1d8_0), 0, 53720 }, /* ADDA.L (An)+,An */ +{ CPUFUNC_FF(op_d1e0_0), 0, 53728 }, /* ADDA.L -(An),An */ +{ CPUFUNC_FF(op_d1e8_0), 0, 53736 }, /* ADDA.L (d16,An),An */ +{ CPUFUNC_FF(op_d1f0_0), 0, 53744 }, /* ADDA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_d1f8_0), 0, 53752 }, /* ADDA.L (xxx).W,An */ +{ CPUFUNC_FF(op_d1f9_0), 0, 53753 }, /* ADDA.L (xxx).L,An */ +{ CPUFUNC_FF(op_d1fa_0), 0, 53754 }, /* ADDA.L (d16,PC),An */ +{ CPUFUNC_FF(op_d1fb_0), 0, 53755 }, /* ADDA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_d1fc_0), 0, 53756 }, /* ADDA.L #.L,An */ +{ CPUFUNC(op_e000_0), 0, 57344 }, /* ASR.B #,Dn */ +{ CPUFUNC(op_e008_0), 0, 57352 }, /* LSR.B #,Dn */ +{ CPUFUNC(op_e010_0), 0, 57360 }, /* ROXR.B #,Dn */ +{ CPUFUNC(op_e018_0), 0, 57368 }, /* ROR.B #,Dn */ +{ CPUFUNC(op_e020_0), 0, 57376 }, /* ASR.B Dn,Dn */ +{ CPUFUNC(op_e028_0), 0, 57384 }, /* LSR.B Dn,Dn */ +{ CPUFUNC(op_e030_0), 0, 57392 }, /* ROXR.B Dn,Dn */ +{ CPUFUNC(op_e038_0), 0, 57400 }, /* ROR.B Dn,Dn */ +{ CPUFUNC(op_e040_0), 0, 57408 }, /* ASR.W #,Dn */ +{ CPUFUNC(op_e048_0), 0, 57416 }, /* LSR.W #,Dn */ +{ CPUFUNC(op_e050_0), 0, 57424 }, /* ROXR.W #,Dn */ +{ CPUFUNC(op_e058_0), 0, 57432 }, /* ROR.W #,Dn */ +{ CPUFUNC(op_e060_0), 0, 57440 }, /* ASR.W Dn,Dn */ +{ CPUFUNC(op_e068_0), 0, 57448 }, /* LSR.W Dn,Dn */ +{ CPUFUNC(op_e070_0), 0, 57456 }, /* ROXR.W Dn,Dn */ +{ CPUFUNC(op_e078_0), 0, 57464 }, /* ROR.W Dn,Dn */ +{ CPUFUNC(op_e080_0), 0, 57472 }, /* ASR.L #,Dn */ +{ CPUFUNC(op_e088_0), 0, 57480 }, /* LSR.L #,Dn */ +{ CPUFUNC(op_e090_0), 0, 57488 }, /* ROXR.L #,Dn */ +{ CPUFUNC(op_e098_0), 0, 57496 }, /* ROR.L #,Dn */ +{ CPUFUNC(op_e0a0_0), 0, 57504 }, /* ASR.L Dn,Dn */ +{ CPUFUNC(op_e0a8_0), 0, 57512 }, /* LSR.L Dn,Dn */ +{ CPUFUNC(op_e0b0_0), 0, 57520 }, /* ROXR.L Dn,Dn */ +{ CPUFUNC(op_e0b8_0), 0, 57528 }, /* ROR.L Dn,Dn */ +{ CPUFUNC(op_e0d0_0), 0, 57552 }, /* ASRW.W (An) */ +{ CPUFUNC(op_e0d8_0), 0, 57560 }, /* ASRW.W (An)+ */ +{ CPUFUNC(op_e0e0_0), 0, 57568 }, /* ASRW.W -(An) */ +{ CPUFUNC(op_e0e8_0), 0, 57576 }, /* ASRW.W (d16,An) */ +{ CPUFUNC(op_e0f0_0), 0, 57584 }, /* ASRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e0f8_0), 0, 57592 }, /* ASRW.W (xxx).W */ +{ CPUFUNC(op_e0f9_0), 0, 57593 }, /* ASRW.W (xxx).L */ +{ CPUFUNC(op_e100_0), 0, 57600 }, /* ASL.B #,Dn */ +{ CPUFUNC(op_e108_0), 0, 57608 }, /* LSL.B #,Dn */ +{ CPUFUNC(op_e110_0), 0, 57616 }, /* ROXL.B #,Dn */ +{ CPUFUNC(op_e118_0), 0, 57624 }, /* ROL.B #,Dn */ +{ CPUFUNC(op_e120_0), 0, 57632 }, /* ASL.B Dn,Dn */ +{ CPUFUNC(op_e128_0), 0, 57640 }, /* LSL.B Dn,Dn */ +{ CPUFUNC(op_e130_0), 0, 57648 }, /* ROXL.B Dn,Dn */ +{ CPUFUNC(op_e138_0), 0, 57656 }, /* ROL.B Dn,Dn */ +{ CPUFUNC(op_e140_0), 0, 57664 }, /* ASL.W #,Dn */ +{ CPUFUNC(op_e148_0), 0, 57672 }, /* LSL.W #,Dn */ +{ CPUFUNC(op_e150_0), 0, 57680 }, /* ROXL.W #,Dn */ +{ CPUFUNC(op_e158_0), 0, 57688 }, /* ROL.W #,Dn */ +{ CPUFUNC(op_e160_0), 0, 57696 }, /* ASL.W Dn,Dn */ +{ CPUFUNC(op_e168_0), 0, 57704 }, /* LSL.W Dn,Dn */ +{ CPUFUNC(op_e170_0), 0, 57712 }, /* ROXL.W Dn,Dn */ +{ CPUFUNC(op_e178_0), 0, 57720 }, /* ROL.W Dn,Dn */ +{ CPUFUNC(op_e180_0), 0, 57728 }, /* ASL.L #,Dn */ +{ CPUFUNC(op_e188_0), 0, 57736 }, /* LSL.L #,Dn */ +{ CPUFUNC(op_e190_0), 0, 57744 }, /* ROXL.L #,Dn */ +{ CPUFUNC(op_e198_0), 0, 57752 }, /* ROL.L #,Dn */ +{ CPUFUNC(op_e1a0_0), 0, 57760 }, /* ASL.L Dn,Dn */ +{ CPUFUNC(op_e1a8_0), 0, 57768 }, /* LSL.L Dn,Dn */ +{ CPUFUNC(op_e1b0_0), 0, 57776 }, /* ROXL.L Dn,Dn */ +{ CPUFUNC(op_e1b8_0), 0, 57784 }, /* ROL.L Dn,Dn */ +{ CPUFUNC(op_e1d0_0), 0, 57808 }, /* ASLW.W (An) */ +{ CPUFUNC(op_e1d8_0), 0, 57816 }, /* ASLW.W (An)+ */ +{ CPUFUNC(op_e1e0_0), 0, 57824 }, /* ASLW.W -(An) */ +{ CPUFUNC(op_e1e8_0), 0, 57832 }, /* ASLW.W (d16,An) */ +{ CPUFUNC(op_e1f0_0), 0, 57840 }, /* ASLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e1f8_0), 0, 57848 }, /* ASLW.W (xxx).W */ +{ CPUFUNC(op_e1f9_0), 0, 57849 }, /* ASLW.W (xxx).L */ +{ CPUFUNC(op_e2d0_0), 0, 58064 }, /* LSRW.W (An) */ +{ CPUFUNC(op_e2d8_0), 0, 58072 }, /* LSRW.W (An)+ */ +{ CPUFUNC(op_e2e0_0), 0, 58080 }, /* LSRW.W -(An) */ +{ CPUFUNC(op_e2e8_0), 0, 58088 }, /* LSRW.W (d16,An) */ +{ CPUFUNC(op_e2f0_0), 0, 58096 }, /* LSRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e2f8_0), 0, 58104 }, /* LSRW.W (xxx).W */ +{ CPUFUNC(op_e2f9_0), 0, 58105 }, /* LSRW.W (xxx).L */ +{ CPUFUNC(op_e3d0_0), 0, 58320 }, /* LSLW.W (An) */ +{ CPUFUNC(op_e3d8_0), 0, 58328 }, /* LSLW.W (An)+ */ +{ CPUFUNC(op_e3e0_0), 0, 58336 }, /* LSLW.W -(An) */ +{ CPUFUNC(op_e3e8_0), 0, 58344 }, /* LSLW.W (d16,An) */ +{ CPUFUNC(op_e3f0_0), 0, 58352 }, /* LSLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e3f8_0), 0, 58360 }, /* LSLW.W (xxx).W */ +{ CPUFUNC(op_e3f9_0), 0, 58361 }, /* LSLW.W (xxx).L */ +{ CPUFUNC(op_e4d0_0), 0, 58576 }, /* ROXRW.W (An) */ +{ CPUFUNC(op_e4d8_0), 0, 58584 }, /* ROXRW.W (An)+ */ +{ CPUFUNC(op_e4e0_0), 0, 58592 }, /* ROXRW.W -(An) */ +{ CPUFUNC(op_e4e8_0), 0, 58600 }, /* ROXRW.W (d16,An) */ +{ CPUFUNC(op_e4f0_0), 0, 58608 }, /* ROXRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e4f8_0), 0, 58616 }, /* ROXRW.W (xxx).W */ +{ CPUFUNC(op_e4f9_0), 0, 58617 }, /* ROXRW.W (xxx).L */ +{ CPUFUNC(op_e5d0_0), 0, 58832 }, /* ROXLW.W (An) */ +{ CPUFUNC(op_e5d8_0), 0, 58840 }, /* ROXLW.W (An)+ */ +{ CPUFUNC(op_e5e0_0), 0, 58848 }, /* ROXLW.W -(An) */ +{ CPUFUNC(op_e5e8_0), 0, 58856 }, /* ROXLW.W (d16,An) */ +{ CPUFUNC(op_e5f0_0), 0, 58864 }, /* ROXLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e5f8_0), 0, 58872 }, /* ROXLW.W (xxx).W */ +{ CPUFUNC(op_e5f9_0), 0, 58873 }, /* ROXLW.W (xxx).L */ +{ CPUFUNC(op_e6d0_0), 0, 59088 }, /* RORW.W (An) */ +{ CPUFUNC(op_e6d8_0), 0, 59096 }, /* RORW.W (An)+ */ +{ CPUFUNC(op_e6e0_0), 0, 59104 }, /* RORW.W -(An) */ +{ CPUFUNC(op_e6e8_0), 0, 59112 }, /* RORW.W (d16,An) */ +{ CPUFUNC(op_e6f0_0), 0, 59120 }, /* RORW.W (d8,An,Xn) */ +{ CPUFUNC(op_e6f8_0), 0, 59128 }, /* RORW.W (xxx).W */ +{ CPUFUNC(op_e6f9_0), 0, 59129 }, /* RORW.W (xxx).L */ +{ CPUFUNC(op_e7d0_0), 0, 59344 }, /* ROLW.W (An) */ +{ CPUFUNC(op_e7d8_0), 0, 59352 }, /* ROLW.W (An)+ */ +{ CPUFUNC(op_e7e0_0), 0, 59360 }, /* ROLW.W -(An) */ +{ CPUFUNC(op_e7e8_0), 0, 59368 }, /* ROLW.W (d16,An) */ +{ CPUFUNC(op_e7f0_0), 0, 59376 }, /* ROLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e7f8_0), 0, 59384 }, /* ROLW.W (xxx).W */ +{ CPUFUNC(op_e7f9_0), 0, 59385 }, /* ROLW.W (xxx).L */ +{ CPUFUNC(op_e8c0_0), 0, 59584 }, /* BFTST.L #.W,Dn */ +{ CPUFUNC(op_e8d0_0), 0, 59600 }, /* BFTST.L #.W,(An) */ +{ CPUFUNC(op_e8e8_0), 0, 59624 }, /* BFTST.L #.W,(d16,An) */ +{ CPUFUNC(op_e8f0_0), 0, 59632 }, /* BFTST.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_e8f8_0), 0, 59640 }, /* BFTST.L #.W,(xxx).W */ +{ CPUFUNC(op_e8f9_0), 0, 59641 }, /* BFTST.L #.W,(xxx).L */ +{ CPUFUNC(op_e8fa_0), 0, 59642 }, /* BFTST.L #.W,(d16,PC) */ +{ CPUFUNC(op_e8fb_0), 0, 59643 }, /* BFTST.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_e9c0_0), 0, 59840 }, /* BFEXTU.L #.W,Dn */ +{ CPUFUNC(op_e9d0_0), 0, 59856 }, /* BFEXTU.L #.W,(An) */ +{ CPUFUNC(op_e9e8_0), 0, 59880 }, /* BFEXTU.L #.W,(d16,An) */ +{ CPUFUNC(op_e9f0_0), 0, 59888 }, /* BFEXTU.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_e9f8_0), 0, 59896 }, /* BFEXTU.L #.W,(xxx).W */ +{ CPUFUNC(op_e9f9_0), 0, 59897 }, /* BFEXTU.L #.W,(xxx).L */ +{ CPUFUNC(op_e9fa_0), 0, 59898 }, /* BFEXTU.L #.W,(d16,PC) */ +{ CPUFUNC(op_e9fb_0), 0, 59899 }, /* BFEXTU.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_eac0_0), 0, 60096 }, /* BFCHG.L #.W,Dn */ +{ CPUFUNC(op_ead0_0), 0, 60112 }, /* BFCHG.L #.W,(An) */ +{ CPUFUNC(op_eae8_0), 0, 60136 }, /* BFCHG.L #.W,(d16,An) */ +{ CPUFUNC(op_eaf0_0), 0, 60144 }, /* BFCHG.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_eaf8_0), 0, 60152 }, /* BFCHG.L #.W,(xxx).W */ +{ CPUFUNC(op_eaf9_0), 0, 60153 }, /* BFCHG.L #.W,(xxx).L */ +{ CPUFUNC(op_ebc0_0), 0, 60352 }, /* BFEXTS.L #.W,Dn */ +{ CPUFUNC(op_ebd0_0), 0, 60368 }, /* BFEXTS.L #.W,(An) */ +{ CPUFUNC(op_ebe8_0), 0, 60392 }, /* BFEXTS.L #.W,(d16,An) */ +{ CPUFUNC(op_ebf0_0), 0, 60400 }, /* BFEXTS.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_ebf8_0), 0, 60408 }, /* BFEXTS.L #.W,(xxx).W */ +{ CPUFUNC(op_ebf9_0), 0, 60409 }, /* BFEXTS.L #.W,(xxx).L */ +{ CPUFUNC(op_ebfa_0), 0, 60410 }, /* BFEXTS.L #.W,(d16,PC) */ +{ CPUFUNC(op_ebfb_0), 0, 60411 }, /* BFEXTS.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_ecc0_0), 0, 60608 }, /* BFCLR.L #.W,Dn */ +{ CPUFUNC(op_ecd0_0), 0, 60624 }, /* BFCLR.L #.W,(An) */ +{ CPUFUNC(op_ece8_0), 0, 60648 }, /* BFCLR.L #.W,(d16,An) */ +{ CPUFUNC(op_ecf0_0), 0, 60656 }, /* BFCLR.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_ecf8_0), 0, 60664 }, /* BFCLR.L #.W,(xxx).W */ +{ CPUFUNC(op_ecf9_0), 0, 60665 }, /* BFCLR.L #.W,(xxx).L */ +{ CPUFUNC(op_edc0_0), 0, 60864 }, /* BFFFO.L #.W,Dn */ +{ CPUFUNC(op_edd0_0), 0, 60880 }, /* BFFFO.L #.W,(An) */ +{ CPUFUNC(op_ede8_0), 0, 60904 }, /* BFFFO.L #.W,(d16,An) */ +{ CPUFUNC(op_edf0_0), 0, 60912 }, /* BFFFO.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_edf8_0), 0, 60920 }, /* BFFFO.L #.W,(xxx).W */ +{ CPUFUNC(op_edf9_0), 0, 60921 }, /* BFFFO.L #.W,(xxx).L */ +{ CPUFUNC(op_edfa_0), 0, 60922 }, /* BFFFO.L #.W,(d16,PC) */ +{ CPUFUNC(op_edfb_0), 0, 60923 }, /* BFFFO.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_eec0_0), 0, 61120 }, /* BFSET.L #.W,Dn */ +{ CPUFUNC(op_eed0_0), 0, 61136 }, /* BFSET.L #.W,(An) */ +{ CPUFUNC(op_eee8_0), 0, 61160 }, /* BFSET.L #.W,(d16,An) */ +{ CPUFUNC(op_eef0_0), 0, 61168 }, /* BFSET.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_eef8_0), 0, 61176 }, /* BFSET.L #.W,(xxx).W */ +{ CPUFUNC(op_eef9_0), 0, 61177 }, /* BFSET.L #.W,(xxx).L */ +{ CPUFUNC(op_efc0_0), 0, 61376 }, /* BFINS.L #.W,Dn */ +{ CPUFUNC(op_efd0_0), 0, 61392 }, /* BFINS.L #.W,(An) */ +{ CPUFUNC(op_efe8_0), 0, 61416 }, /* BFINS.L #.W,(d16,An) */ +{ CPUFUNC(op_eff0_0), 0, 61424 }, /* BFINS.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_eff8_0), 0, 61432 }, /* BFINS.L #.W,(xxx).W */ +{ CPUFUNC(op_eff9_0), 0, 61433 }, /* BFINS.L #.W,(xxx).L */ +{ CPUFUNC_FF(op_f200_0), 0, 61952 }, /* FPP.L #.W,Dn */ +{ CPUFUNC_FF(op_f208_0), 0, 61960 }, /* FPP.L #.W,An */ +{ CPUFUNC_FF(op_f210_0), 0, 61968 }, /* FPP.L #.W,(An) */ +{ CPUFUNC_FF(op_f218_0), 0, 61976 }, /* FPP.L #.W,(An)+ */ +{ CPUFUNC_FF(op_f220_0), 0, 61984 }, /* FPP.L #.W,-(An) */ +{ CPUFUNC_FF(op_f228_0), 0, 61992 }, /* FPP.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_f230_0), 0, 62000 }, /* FPP.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_f238_0), 0, 62008 }, /* FPP.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_f239_0), 0, 62009 }, /* FPP.L #.W,(xxx).L */ +{ CPUFUNC_FF(op_f23a_0), 0, 62010 }, /* FPP.L #.W,(d16,PC) */ +{ CPUFUNC_FF(op_f23b_0), 0, 62011 }, /* FPP.L #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_f23c_0), 0, 62012 }, /* FPP.L #.W,#.L */ +{ CPUFUNC_FF(op_f240_0), 0, 62016 }, /* FScc.L #.W,Dn */ +{ CPUFUNC_FF(op_f248_0), 0, 62024 }, /* FDBcc.L #.W,Dn */ +{ CPUFUNC_FF(op_f250_0), 0, 62032 }, /* FScc.L #.W,(An) */ +{ CPUFUNC_FF(op_f258_0), 0, 62040 }, /* FScc.L #.W,(An)+ */ +{ CPUFUNC_FF(op_f260_0), 0, 62048 }, /* FScc.L #.W,-(An) */ +{ CPUFUNC_FF(op_f268_0), 0, 62056 }, /* FScc.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_f270_0), 0, 62064 }, /* FScc.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_f278_0), 0, 62072 }, /* FScc.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_f279_0), 0, 62073 }, /* FScc.L #.W,(xxx).L */ +{ CPUFUNC_FF(op_f27a_0), 0, 62074 }, /* FTRAPcc.L #.W */ +{ CPUFUNC_FF(op_f27b_0), 0, 62075 }, /* FTRAPcc.L #.L */ +{ CPUFUNC_FF(op_f27c_0), 0, 62076 }, /* FTRAPcc.L */ +{ CPUFUNC_FF(op_f280_0), 0, 62080 }, /* FBcc.L #,#.W */ +{ CPUFUNC_FF(op_f2c0_0), 0, 62144 }, /* FBcc.L #,#.L */ +{ CPUFUNC_FF(op_f310_0), 0, 62224 }, /* FSAVE.L (An) */ +{ CPUFUNC_FF(op_f320_0), 0, 62240 }, /* FSAVE.L -(An) */ +{ CPUFUNC_FF(op_f328_0), 0, 62248 }, /* FSAVE.L (d16,An) */ +{ CPUFUNC_FF(op_f330_0), 0, 62256 }, /* FSAVE.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_f338_0), 0, 62264 }, /* FSAVE.L (xxx).W */ +{ CPUFUNC_FF(op_f339_0), 0, 62265 }, /* FSAVE.L (xxx).L */ +{ CPUFUNC_FF(op_f350_0), 0, 62288 }, /* FRESTORE.L (An) */ +{ CPUFUNC_FF(op_f358_0), 0, 62296 }, /* FRESTORE.L (An)+ */ +{ CPUFUNC_FF(op_f368_0), 0, 62312 }, /* FRESTORE.L (d16,An) */ +{ CPUFUNC_FF(op_f370_0), 0, 62320 }, /* FRESTORE.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_f378_0), 0, 62328 }, /* FRESTORE.L (xxx).W */ +{ CPUFUNC_FF(op_f379_0), 0, 62329 }, /* FRESTORE.L (xxx).L */ +{ CPUFUNC_FF(op_f37a_0), 0, 62330 }, /* FRESTORE.L (d16,PC) */ +{ CPUFUNC_FF(op_f37b_0), 0, 62331 }, /* FRESTORE.L (d8,PC,Xn) */ +{ CPUFUNC_FF(op_f408_0), 0, 62472 }, /* CINVL.L #,An */ +{ CPUFUNC_FF(op_f410_0), 0, 62480 }, /* CINVP.L #,An */ +{ CPUFUNC_FF(op_f418_0), 0, 62488 }, /* CINVA.L # */ +{ CPUFUNC_FF(op_f419_0), 0, 62489 }, /* CINVA.L # */ +{ CPUFUNC_FF(op_f41a_0), 0, 62490 }, /* CINVA.L # */ +{ CPUFUNC_FF(op_f41b_0), 0, 62491 }, /* CINVA.L # */ +{ CPUFUNC_FF(op_f41c_0), 0, 62492 }, /* CINVA.L # */ +{ CPUFUNC_FF(op_f41d_0), 0, 62493 }, /* CINVA.L # */ +{ CPUFUNC_FF(op_f41e_0), 0, 62494 }, /* CINVA.L # */ +{ CPUFUNC_FF(op_f41f_0), 0, 62495 }, /* CINVA.L # */ +{ CPUFUNC_FF(op_f428_0), 0, 62504 }, /* CPUSHL.L #,An */ +{ CPUFUNC_FF(op_f430_0), 0, 62512 }, /* CPUSHP.L #,An */ +{ CPUFUNC_FF(op_f438_0), 0, 62520 }, /* CPUSHA.L # */ +{ CPUFUNC_FF(op_f439_0), 0, 62521 }, /* CPUSHA.L # */ +{ CPUFUNC_FF(op_f43a_0), 0, 62522 }, /* CPUSHA.L # */ +{ CPUFUNC_FF(op_f43b_0), 0, 62523 }, /* CPUSHA.L # */ +{ CPUFUNC_FF(op_f43c_0), 0, 62524 }, /* CPUSHA.L # */ +{ CPUFUNC_FF(op_f43d_0), 0, 62525 }, /* CPUSHA.L # */ +{ CPUFUNC_FF(op_f43e_0), 0, 62526 }, /* CPUSHA.L # */ +{ CPUFUNC_FF(op_f43f_0), 0, 62527 }, /* CPUSHA.L # */ +{ CPUFUNC_FF(op_f500_0), 0, 62720 }, /* MMUOP.L #,Dn */ +{ CPUFUNC_FF(op_f600_0), 0, 62976 }, /* MOVE16.L (An)+,(xxx).L */ +{ CPUFUNC_FF(op_f608_0), 0, 62984 }, /* MOVE16.L (xxx).L,(An)+ */ +{ CPUFUNC_FF(op_f610_0), 0, 62992 }, /* MOVE16.L (An),(xxx).L */ +{ CPUFUNC_FF(op_f618_0), 0, 63000 }, /* MOVE16.L (xxx).L,(An) */ +{ CPUFUNC_FF(op_f620_0), 0, 63008 }, /* MOVE16.L (An)+,(An)+ */ +{ 0, 0, 0 }}; +struct cputbl CPUFUNC(op_smalltbl_1)[] = { +{ CPUFUNC(op_0_0), 0, 0 }, /* OR.B #.B,Dn */ +{ CPUFUNC(op_10_0), 0, 16 }, /* OR.B #.B,(An) */ +{ CPUFUNC(op_18_0), 0, 24 }, /* OR.B #.B,(An)+ */ +{ CPUFUNC(op_20_0), 0, 32 }, /* OR.B #.B,-(An) */ +{ CPUFUNC(op_28_0), 0, 40 }, /* OR.B #.B,(d16,An) */ +{ CPUFUNC(op_30_0), 0, 48 }, /* OR.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_38_0), 0, 56 }, /* OR.B #.B,(xxx).W */ +{ CPUFUNC(op_39_0), 0, 57 }, /* OR.B #.B,(xxx).L */ +{ CPUFUNC(op_3c_0), 0, 60 }, /* ORSR.B #.W */ +{ CPUFUNC(op_40_0), 0, 64 }, /* OR.W #.W,Dn */ +{ CPUFUNC(op_50_0), 0, 80 }, /* OR.W #.W,(An) */ +{ CPUFUNC(op_58_0), 0, 88 }, /* OR.W #.W,(An)+ */ +{ CPUFUNC(op_60_0), 0, 96 }, /* OR.W #.W,-(An) */ +{ CPUFUNC(op_68_0), 0, 104 }, /* OR.W #.W,(d16,An) */ +{ CPUFUNC(op_70_0), 0, 112 }, /* OR.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_78_0), 0, 120 }, /* OR.W #.W,(xxx).W */ +{ CPUFUNC(op_79_0), 0, 121 }, /* OR.W #.W,(xxx).L */ +{ CPUFUNC(op_7c_0), 0, 124 }, /* ORSR.W #.W */ +{ CPUFUNC(op_80_0), 0, 128 }, /* OR.L #.L,Dn */ +{ CPUFUNC(op_90_0), 0, 144 }, /* OR.L #.L,(An) */ +{ CPUFUNC(op_98_0), 0, 152 }, /* OR.L #.L,(An)+ */ +{ CPUFUNC(op_a0_0), 0, 160 }, /* OR.L #.L,-(An) */ +{ CPUFUNC(op_a8_0), 0, 168 }, /* OR.L #.L,(d16,An) */ +{ CPUFUNC(op_b0_0), 0, 176 }, /* OR.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_b8_0), 0, 184 }, /* OR.L #.L,(xxx).W */ +{ CPUFUNC(op_b9_0), 0, 185 }, /* OR.L #.L,(xxx).L */ +{ CPUFUNC(op_d0_0), 0, 208 }, /* CHK2.B #.W,(An) */ +{ CPUFUNC(op_e8_0), 0, 232 }, /* CHK2.B #.W,(d16,An) */ +{ CPUFUNC(op_f0_0), 0, 240 }, /* CHK2.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_f8_0), 0, 248 }, /* CHK2.B #.W,(xxx).W */ +{ CPUFUNC(op_f9_0), 0, 249 }, /* CHK2.B #.W,(xxx).L */ +{ CPUFUNC(op_fa_0), 0, 250 }, /* CHK2.B #.W,(d16,PC) */ +{ CPUFUNC(op_fb_0), 0, 251 }, /* CHK2.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_100_0), 0, 256 }, /* BTST.L Dn,Dn */ +{ CPUFUNC_FF(op_108_0), 0, 264 }, /* MVPMR.W (d16,An),Dn */ +{ CPUFUNC(op_110_0), 0, 272 }, /* BTST.B Dn,(An) */ +{ CPUFUNC(op_118_0), 0, 280 }, /* BTST.B Dn,(An)+ */ +{ CPUFUNC(op_120_0), 0, 288 }, /* BTST.B Dn,-(An) */ +{ CPUFUNC(op_128_0), 0, 296 }, /* BTST.B Dn,(d16,An) */ +{ CPUFUNC(op_130_0), 0, 304 }, /* BTST.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_138_0), 0, 312 }, /* BTST.B Dn,(xxx).W */ +{ CPUFUNC(op_139_0), 0, 313 }, /* BTST.B Dn,(xxx).L */ +{ CPUFUNC(op_13a_0), 0, 314 }, /* BTST.B Dn,(d16,PC) */ +{ CPUFUNC(op_13b_0), 0, 315 }, /* BTST.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_13c_0), 0, 316 }, /* BTST.B Dn,#.B */ +{ CPUFUNC(op_140_0), 0, 320 }, /* BCHG.L Dn,Dn */ +{ CPUFUNC_FF(op_148_0), 0, 328 }, /* MVPMR.L (d16,An),Dn */ +{ CPUFUNC(op_150_0), 0, 336 }, /* BCHG.B Dn,(An) */ +{ CPUFUNC(op_158_0), 0, 344 }, /* BCHG.B Dn,(An)+ */ +{ CPUFUNC(op_160_0), 0, 352 }, /* BCHG.B Dn,-(An) */ +{ CPUFUNC(op_168_0), 0, 360 }, /* BCHG.B Dn,(d16,An) */ +{ CPUFUNC(op_170_0), 0, 368 }, /* BCHG.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_178_0), 0, 376 }, /* BCHG.B Dn,(xxx).W */ +{ CPUFUNC(op_179_0), 0, 377 }, /* BCHG.B Dn,(xxx).L */ +{ CPUFUNC(op_17a_0), 0, 378 }, /* BCHG.B Dn,(d16,PC) */ +{ CPUFUNC(op_17b_0), 0, 379 }, /* BCHG.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_180_0), 0, 384 }, /* BCLR.L Dn,Dn */ +{ CPUFUNC_FF(op_188_0), 0, 392 }, /* MVPRM.W Dn,(d16,An) */ +{ CPUFUNC(op_190_0), 0, 400 }, /* BCLR.B Dn,(An) */ +{ CPUFUNC(op_198_0), 0, 408 }, /* BCLR.B Dn,(An)+ */ +{ CPUFUNC(op_1a0_0), 0, 416 }, /* BCLR.B Dn,-(An) */ +{ CPUFUNC(op_1a8_0), 0, 424 }, /* BCLR.B Dn,(d16,An) */ +{ CPUFUNC(op_1b0_0), 0, 432 }, /* BCLR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1b8_0), 0, 440 }, /* BCLR.B Dn,(xxx).W */ +{ CPUFUNC(op_1b9_0), 0, 441 }, /* BCLR.B Dn,(xxx).L */ +{ CPUFUNC(op_1ba_0), 0, 442 }, /* BCLR.B Dn,(d16,PC) */ +{ CPUFUNC(op_1bb_0), 0, 443 }, /* BCLR.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_1c0_0), 0, 448 }, /* BSET.L Dn,Dn */ +{ CPUFUNC_FF(op_1c8_0), 0, 456 }, /* MVPRM.L Dn,(d16,An) */ +{ CPUFUNC(op_1d0_0), 0, 464 }, /* BSET.B Dn,(An) */ +{ CPUFUNC(op_1d8_0), 0, 472 }, /* BSET.B Dn,(An)+ */ +{ CPUFUNC(op_1e0_0), 0, 480 }, /* BSET.B Dn,-(An) */ +{ CPUFUNC(op_1e8_0), 0, 488 }, /* BSET.B Dn,(d16,An) */ +{ CPUFUNC(op_1f0_0), 0, 496 }, /* BSET.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1f8_0), 0, 504 }, /* BSET.B Dn,(xxx).W */ +{ CPUFUNC(op_1f9_0), 0, 505 }, /* BSET.B Dn,(xxx).L */ +{ CPUFUNC(op_1fa_0), 0, 506 }, /* BSET.B Dn,(d16,PC) */ +{ CPUFUNC(op_1fb_0), 0, 507 }, /* BSET.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_200_0), 0, 512 }, /* AND.B #.B,Dn */ +{ CPUFUNC(op_210_0), 0, 528 }, /* AND.B #.B,(An) */ +{ CPUFUNC(op_218_0), 0, 536 }, /* AND.B #.B,(An)+ */ +{ CPUFUNC(op_220_0), 0, 544 }, /* AND.B #.B,-(An) */ +{ CPUFUNC(op_228_0), 0, 552 }, /* AND.B #.B,(d16,An) */ +{ CPUFUNC(op_230_0), 0, 560 }, /* AND.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_238_0), 0, 568 }, /* AND.B #.B,(xxx).W */ +{ CPUFUNC(op_239_0), 0, 569 }, /* AND.B #.B,(xxx).L */ +{ CPUFUNC(op_23c_0), 0, 572 }, /* ANDSR.B #.W */ +{ CPUFUNC(op_240_0), 0, 576 }, /* AND.W #.W,Dn */ +{ CPUFUNC(op_250_0), 0, 592 }, /* AND.W #.W,(An) */ +{ CPUFUNC(op_258_0), 0, 600 }, /* AND.W #.W,(An)+ */ +{ CPUFUNC(op_260_0), 0, 608 }, /* AND.W #.W,-(An) */ +{ CPUFUNC(op_268_0), 0, 616 }, /* AND.W #.W,(d16,An) */ +{ CPUFUNC(op_270_0), 0, 624 }, /* AND.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_278_0), 0, 632 }, /* AND.W #.W,(xxx).W */ +{ CPUFUNC(op_279_0), 0, 633 }, /* AND.W #.W,(xxx).L */ +{ CPUFUNC(op_27c_0), 0, 636 }, /* ANDSR.W #.W */ +{ CPUFUNC(op_280_0), 0, 640 }, /* AND.L #.L,Dn */ +{ CPUFUNC(op_290_0), 0, 656 }, /* AND.L #.L,(An) */ +{ CPUFUNC(op_298_0), 0, 664 }, /* AND.L #.L,(An)+ */ +{ CPUFUNC(op_2a0_0), 0, 672 }, /* AND.L #.L,-(An) */ +{ CPUFUNC(op_2a8_0), 0, 680 }, /* AND.L #.L,(d16,An) */ +{ CPUFUNC(op_2b0_0), 0, 688 }, /* AND.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_2b8_0), 0, 696 }, /* AND.L #.L,(xxx).W */ +{ CPUFUNC(op_2b9_0), 0, 697 }, /* AND.L #.L,(xxx).L */ +{ CPUFUNC(op_2d0_0), 0, 720 }, /* CHK2.W #.W,(An) */ +{ CPUFUNC(op_2e8_0), 0, 744 }, /* CHK2.W #.W,(d16,An) */ +{ CPUFUNC(op_2f0_0), 0, 752 }, /* CHK2.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_2f8_0), 0, 760 }, /* CHK2.W #.W,(xxx).W */ +{ CPUFUNC(op_2f9_0), 0, 761 }, /* CHK2.W #.W,(xxx).L */ +{ CPUFUNC(op_2fa_0), 0, 762 }, /* CHK2.W #.W,(d16,PC) */ +{ CPUFUNC(op_2fb_0), 0, 763 }, /* CHK2.W #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_400_0), 0, 1024 }, /* SUB.B #.B,Dn */ +{ CPUFUNC(op_410_0), 0, 1040 }, /* SUB.B #.B,(An) */ +{ CPUFUNC(op_418_0), 0, 1048 }, /* SUB.B #.B,(An)+ */ +{ CPUFUNC(op_420_0), 0, 1056 }, /* SUB.B #.B,-(An) */ +{ CPUFUNC(op_428_0), 0, 1064 }, /* SUB.B #.B,(d16,An) */ +{ CPUFUNC(op_430_0), 0, 1072 }, /* SUB.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_438_0), 0, 1080 }, /* SUB.B #.B,(xxx).W */ +{ CPUFUNC(op_439_0), 0, 1081 }, /* SUB.B #.B,(xxx).L */ +{ CPUFUNC(op_440_0), 0, 1088 }, /* SUB.W #.W,Dn */ +{ CPUFUNC(op_450_0), 0, 1104 }, /* SUB.W #.W,(An) */ +{ CPUFUNC(op_458_0), 0, 1112 }, /* SUB.W #.W,(An)+ */ +{ CPUFUNC(op_460_0), 0, 1120 }, /* SUB.W #.W,-(An) */ +{ CPUFUNC(op_468_0), 0, 1128 }, /* SUB.W #.W,(d16,An) */ +{ CPUFUNC(op_470_0), 0, 1136 }, /* SUB.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_478_0), 0, 1144 }, /* SUB.W #.W,(xxx).W */ +{ CPUFUNC(op_479_0), 0, 1145 }, /* SUB.W #.W,(xxx).L */ +{ CPUFUNC(op_480_0), 0, 1152 }, /* SUB.L #.L,Dn */ +{ CPUFUNC(op_490_0), 0, 1168 }, /* SUB.L #.L,(An) */ +{ CPUFUNC(op_498_0), 0, 1176 }, /* SUB.L #.L,(An)+ */ +{ CPUFUNC(op_4a0_0), 0, 1184 }, /* SUB.L #.L,-(An) */ +{ CPUFUNC(op_4a8_0), 0, 1192 }, /* SUB.L #.L,(d16,An) */ +{ CPUFUNC(op_4b0_0), 0, 1200 }, /* SUB.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_4b8_0), 0, 1208 }, /* SUB.L #.L,(xxx).W */ +{ CPUFUNC(op_4b9_0), 0, 1209 }, /* SUB.L #.L,(xxx).L */ +{ CPUFUNC(op_4d0_0), 0, 1232 }, /* CHK2.L #.W,(An) */ +{ CPUFUNC(op_4e8_0), 0, 1256 }, /* CHK2.L #.W,(d16,An) */ +{ CPUFUNC(op_4f0_0), 0, 1264 }, /* CHK2.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_4f8_0), 0, 1272 }, /* CHK2.L #.W,(xxx).W */ +{ CPUFUNC(op_4f9_0), 0, 1273 }, /* CHK2.L #.W,(xxx).L */ +{ CPUFUNC(op_4fa_0), 0, 1274 }, /* CHK2.L #.W,(d16,PC) */ +{ CPUFUNC(op_4fb_0), 0, 1275 }, /* CHK2.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_600_0), 0, 1536 }, /* ADD.B #.B,Dn */ +{ CPUFUNC(op_610_0), 0, 1552 }, /* ADD.B #.B,(An) */ +{ CPUFUNC(op_618_0), 0, 1560 }, /* ADD.B #.B,(An)+ */ +{ CPUFUNC(op_620_0), 0, 1568 }, /* ADD.B #.B,-(An) */ +{ CPUFUNC(op_628_0), 0, 1576 }, /* ADD.B #.B,(d16,An) */ +{ CPUFUNC(op_630_0), 0, 1584 }, /* ADD.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_638_0), 0, 1592 }, /* ADD.B #.B,(xxx).W */ +{ CPUFUNC(op_639_0), 0, 1593 }, /* ADD.B #.B,(xxx).L */ +{ CPUFUNC(op_640_0), 0, 1600 }, /* ADD.W #.W,Dn */ +{ CPUFUNC(op_650_0), 0, 1616 }, /* ADD.W #.W,(An) */ +{ CPUFUNC(op_658_0), 0, 1624 }, /* ADD.W #.W,(An)+ */ +{ CPUFUNC(op_660_0), 0, 1632 }, /* ADD.W #.W,-(An) */ +{ CPUFUNC(op_668_0), 0, 1640 }, /* ADD.W #.W,(d16,An) */ +{ CPUFUNC(op_670_0), 0, 1648 }, /* ADD.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_678_0), 0, 1656 }, /* ADD.W #.W,(xxx).W */ +{ CPUFUNC(op_679_0), 0, 1657 }, /* ADD.W #.W,(xxx).L */ +{ CPUFUNC(op_680_0), 0, 1664 }, /* ADD.L #.L,Dn */ +{ CPUFUNC(op_690_0), 0, 1680 }, /* ADD.L #.L,(An) */ +{ CPUFUNC(op_698_0), 0, 1688 }, /* ADD.L #.L,(An)+ */ +{ CPUFUNC(op_6a0_0), 0, 1696 }, /* ADD.L #.L,-(An) */ +{ CPUFUNC(op_6a8_0), 0, 1704 }, /* ADD.L #.L,(d16,An) */ +{ CPUFUNC(op_6b0_0), 0, 1712 }, /* ADD.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_6b8_0), 0, 1720 }, /* ADD.L #.L,(xxx).W */ +{ CPUFUNC(op_6b9_0), 0, 1721 }, /* ADD.L #.L,(xxx).L */ +{ CPUFUNC(op_6c0_0), 0, 1728 }, /* RTM.L Dn */ +{ CPUFUNC(op_6c8_0), 0, 1736 }, /* RTM.L An */ +{ CPUFUNC_FF(op_6d0_0), 0, 1744 }, /* CALLM.L (An) */ +{ CPUFUNC_FF(op_6e8_0), 0, 1768 }, /* CALLM.L (d16,An) */ +{ CPUFUNC_FF(op_6f0_0), 0, 1776 }, /* CALLM.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_6f8_0), 0, 1784 }, /* CALLM.L (xxx).W */ +{ CPUFUNC_FF(op_6f9_0), 0, 1785 }, /* CALLM.L (xxx).L */ +{ CPUFUNC_FF(op_6fa_0), 0, 1786 }, /* CALLM.L (d16,PC) */ +{ CPUFUNC_FF(op_6fb_0), 0, 1787 }, /* CALLM.L (d8,PC,Xn) */ +{ CPUFUNC(op_800_0), 0, 2048 }, /* BTST.L #.W,Dn */ +{ CPUFUNC(op_810_0), 0, 2064 }, /* BTST.B #.W,(An) */ +{ CPUFUNC(op_818_0), 0, 2072 }, /* BTST.B #.W,(An)+ */ +{ CPUFUNC(op_820_0), 0, 2080 }, /* BTST.B #.W,-(An) */ +{ CPUFUNC(op_828_0), 0, 2088 }, /* BTST.B #.W,(d16,An) */ +{ CPUFUNC(op_830_0), 0, 2096 }, /* BTST.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_838_0), 0, 2104 }, /* BTST.B #.W,(xxx).W */ +{ CPUFUNC(op_839_0), 0, 2105 }, /* BTST.B #.W,(xxx).L */ +{ CPUFUNC(op_83a_0), 0, 2106 }, /* BTST.B #.W,(d16,PC) */ +{ CPUFUNC(op_83b_0), 0, 2107 }, /* BTST.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_83c_0), 0, 2108 }, /* BTST.B #.W,#.B */ +{ CPUFUNC(op_840_0), 0, 2112 }, /* BCHG.L #.W,Dn */ +{ CPUFUNC(op_850_0), 0, 2128 }, /* BCHG.B #.W,(An) */ +{ CPUFUNC(op_858_0), 0, 2136 }, /* BCHG.B #.W,(An)+ */ +{ CPUFUNC(op_860_0), 0, 2144 }, /* BCHG.B #.W,-(An) */ +{ CPUFUNC(op_868_0), 0, 2152 }, /* BCHG.B #.W,(d16,An) */ +{ CPUFUNC(op_870_0), 0, 2160 }, /* BCHG.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_878_0), 0, 2168 }, /* BCHG.B #.W,(xxx).W */ +{ CPUFUNC(op_879_0), 0, 2169 }, /* BCHG.B #.W,(xxx).L */ +{ CPUFUNC(op_87a_0), 0, 2170 }, /* BCHG.B #.W,(d16,PC) */ +{ CPUFUNC(op_87b_0), 0, 2171 }, /* BCHG.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_880_0), 0, 2176 }, /* BCLR.L #.W,Dn */ +{ CPUFUNC(op_890_0), 0, 2192 }, /* BCLR.B #.W,(An) */ +{ CPUFUNC(op_898_0), 0, 2200 }, /* BCLR.B #.W,(An)+ */ +{ CPUFUNC(op_8a0_0), 0, 2208 }, /* BCLR.B #.W,-(An) */ +{ CPUFUNC(op_8a8_0), 0, 2216 }, /* BCLR.B #.W,(d16,An) */ +{ CPUFUNC(op_8b0_0), 0, 2224 }, /* BCLR.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_8b8_0), 0, 2232 }, /* BCLR.B #.W,(xxx).W */ +{ CPUFUNC(op_8b9_0), 0, 2233 }, /* BCLR.B #.W,(xxx).L */ +{ CPUFUNC(op_8ba_0), 0, 2234 }, /* BCLR.B #.W,(d16,PC) */ +{ CPUFUNC(op_8bb_0), 0, 2235 }, /* BCLR.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_8c0_0), 0, 2240 }, /* BSET.L #.W,Dn */ +{ CPUFUNC(op_8d0_0), 0, 2256 }, /* BSET.B #.W,(An) */ +{ CPUFUNC(op_8d8_0), 0, 2264 }, /* BSET.B #.W,(An)+ */ +{ CPUFUNC(op_8e0_0), 0, 2272 }, /* BSET.B #.W,-(An) */ +{ CPUFUNC(op_8e8_0), 0, 2280 }, /* BSET.B #.W,(d16,An) */ +{ CPUFUNC(op_8f0_0), 0, 2288 }, /* BSET.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_8f8_0), 0, 2296 }, /* BSET.B #.W,(xxx).W */ +{ CPUFUNC(op_8f9_0), 0, 2297 }, /* BSET.B #.W,(xxx).L */ +{ CPUFUNC(op_8fa_0), 0, 2298 }, /* BSET.B #.W,(d16,PC) */ +{ CPUFUNC(op_8fb_0), 0, 2299 }, /* BSET.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_a00_0), 0, 2560 }, /* EOR.B #.B,Dn */ +{ CPUFUNC(op_a10_0), 0, 2576 }, /* EOR.B #.B,(An) */ +{ CPUFUNC(op_a18_0), 0, 2584 }, /* EOR.B #.B,(An)+ */ +{ CPUFUNC(op_a20_0), 0, 2592 }, /* EOR.B #.B,-(An) */ +{ CPUFUNC(op_a28_0), 0, 2600 }, /* EOR.B #.B,(d16,An) */ +{ CPUFUNC(op_a30_0), 0, 2608 }, /* EOR.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_a38_0), 0, 2616 }, /* EOR.B #.B,(xxx).W */ +{ CPUFUNC(op_a39_0), 0, 2617 }, /* EOR.B #.B,(xxx).L */ +{ CPUFUNC(op_a3c_0), 0, 2620 }, /* EORSR.B #.W */ +{ CPUFUNC(op_a40_0), 0, 2624 }, /* EOR.W #.W,Dn */ +{ CPUFUNC(op_a50_0), 0, 2640 }, /* EOR.W #.W,(An) */ +{ CPUFUNC(op_a58_0), 0, 2648 }, /* EOR.W #.W,(An)+ */ +{ CPUFUNC(op_a60_0), 0, 2656 }, /* EOR.W #.W,-(An) */ +{ CPUFUNC(op_a68_0), 0, 2664 }, /* EOR.W #.W,(d16,An) */ +{ CPUFUNC(op_a70_0), 0, 2672 }, /* EOR.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_a78_0), 0, 2680 }, /* EOR.W #.W,(xxx).W */ +{ CPUFUNC(op_a79_0), 0, 2681 }, /* EOR.W #.W,(xxx).L */ +{ CPUFUNC(op_a7c_0), 0, 2684 }, /* EORSR.W #.W */ +{ CPUFUNC(op_a80_0), 0, 2688 }, /* EOR.L #.L,Dn */ +{ CPUFUNC(op_a90_0), 0, 2704 }, /* EOR.L #.L,(An) */ +{ CPUFUNC(op_a98_0), 0, 2712 }, /* EOR.L #.L,(An)+ */ +{ CPUFUNC(op_aa0_0), 0, 2720 }, /* EOR.L #.L,-(An) */ +{ CPUFUNC(op_aa8_0), 0, 2728 }, /* EOR.L #.L,(d16,An) */ +{ CPUFUNC(op_ab0_0), 0, 2736 }, /* EOR.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_ab8_0), 0, 2744 }, /* EOR.L #.L,(xxx).W */ +{ CPUFUNC(op_ab9_0), 0, 2745 }, /* EOR.L #.L,(xxx).L */ +{ CPUFUNC(op_ad0_0), 0, 2768 }, /* CAS.B #.W,(An) */ +{ CPUFUNC(op_ad8_0), 0, 2776 }, /* CAS.B #.W,(An)+ */ +{ CPUFUNC(op_ae0_0), 0, 2784 }, /* CAS.B #.W,-(An) */ +{ CPUFUNC(op_ae8_0), 0, 2792 }, /* CAS.B #.W,(d16,An) */ +{ CPUFUNC(op_af0_0), 0, 2800 }, /* CAS.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_af8_0), 0, 2808 }, /* CAS.B #.W,(xxx).W */ +{ CPUFUNC(op_af9_0), 0, 2809 }, /* CAS.B #.W,(xxx).L */ +{ CPUFUNC(op_c00_0), 0, 3072 }, /* CMP.B #.B,Dn */ +{ CPUFUNC(op_c10_0), 0, 3088 }, /* CMP.B #.B,(An) */ +{ CPUFUNC(op_c18_0), 0, 3096 }, /* CMP.B #.B,(An)+ */ +{ CPUFUNC(op_c20_0), 0, 3104 }, /* CMP.B #.B,-(An) */ +{ CPUFUNC(op_c28_0), 0, 3112 }, /* CMP.B #.B,(d16,An) */ +{ CPUFUNC(op_c30_0), 0, 3120 }, /* CMP.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_c38_0), 0, 3128 }, /* CMP.B #.B,(xxx).W */ +{ CPUFUNC(op_c39_0), 0, 3129 }, /* CMP.B #.B,(xxx).L */ +{ CPUFUNC(op_c3a_0), 0, 3130 }, /* CMP.B #.B,(d16,PC) */ +{ CPUFUNC(op_c3b_0), 0, 3131 }, /* CMP.B #.B,(d8,PC,Xn) */ +{ CPUFUNC(op_c40_0), 0, 3136 }, /* CMP.W #.W,Dn */ +{ CPUFUNC(op_c50_0), 0, 3152 }, /* CMP.W #.W,(An) */ +{ CPUFUNC(op_c58_0), 0, 3160 }, /* CMP.W #.W,(An)+ */ +{ CPUFUNC(op_c60_0), 0, 3168 }, /* CMP.W #.W,-(An) */ +{ CPUFUNC(op_c68_0), 0, 3176 }, /* CMP.W #.W,(d16,An) */ +{ CPUFUNC(op_c70_0), 0, 3184 }, /* CMP.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_c78_0), 0, 3192 }, /* CMP.W #.W,(xxx).W */ +{ CPUFUNC(op_c79_0), 0, 3193 }, /* CMP.W #.W,(xxx).L */ +{ CPUFUNC(op_c7a_0), 0, 3194 }, /* CMP.W #.W,(d16,PC) */ +{ CPUFUNC(op_c7b_0), 0, 3195 }, /* CMP.W #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_c80_0), 0, 3200 }, /* CMP.L #.L,Dn */ +{ CPUFUNC(op_c90_0), 0, 3216 }, /* CMP.L #.L,(An) */ +{ CPUFUNC(op_c98_0), 0, 3224 }, /* CMP.L #.L,(An)+ */ +{ CPUFUNC(op_ca0_0), 0, 3232 }, /* CMP.L #.L,-(An) */ +{ CPUFUNC(op_ca8_0), 0, 3240 }, /* CMP.L #.L,(d16,An) */ +{ CPUFUNC(op_cb0_0), 0, 3248 }, /* CMP.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_cb8_0), 0, 3256 }, /* CMP.L #.L,(xxx).W */ +{ CPUFUNC(op_cb9_0), 0, 3257 }, /* CMP.L #.L,(xxx).L */ +{ CPUFUNC(op_cba_0), 0, 3258 }, /* CMP.L #.L,(d16,PC) */ +{ CPUFUNC(op_cbb_0), 0, 3259 }, /* CMP.L #.L,(d8,PC,Xn) */ +{ CPUFUNC(op_cd0_0), 0, 3280 }, /* CAS.W #.W,(An) */ +{ CPUFUNC(op_cd8_0), 0, 3288 }, /* CAS.W #.W,(An)+ */ +{ CPUFUNC(op_ce0_0), 0, 3296 }, /* CAS.W #.W,-(An) */ +{ CPUFUNC(op_ce8_0), 0, 3304 }, /* CAS.W #.W,(d16,An) */ +{ CPUFUNC(op_cf0_0), 0, 3312 }, /* CAS.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_cf8_0), 0, 3320 }, /* CAS.W #.W,(xxx).W */ +{ CPUFUNC(op_cf9_0), 0, 3321 }, /* CAS.W #.W,(xxx).L */ +{ CPUFUNC(op_cfc_0), 0, 3324 }, /* CAS2.W #.L */ +{ CPUFUNC_FF(op_e10_0), 0, 3600 }, /* MOVES.B #.W,(An) */ +{ CPUFUNC_FF(op_e18_0), 0, 3608 }, /* MOVES.B #.W,(An)+ */ +{ CPUFUNC_FF(op_e20_0), 0, 3616 }, /* MOVES.B #.W,-(An) */ +{ CPUFUNC_FF(op_e28_0), 0, 3624 }, /* MOVES.B #.W,(d16,An) */ +{ CPUFUNC_FF(op_e30_0), 0, 3632 }, /* MOVES.B #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_e38_0), 0, 3640 }, /* MOVES.B #.W,(xxx).W */ +{ CPUFUNC_FF(op_e39_0), 0, 3641 }, /* MOVES.B #.W,(xxx).L */ +{ CPUFUNC_FF(op_e50_0), 0, 3664 }, /* MOVES.W #.W,(An) */ +{ CPUFUNC_FF(op_e58_0), 0, 3672 }, /* MOVES.W #.W,(An)+ */ +{ CPUFUNC_FF(op_e60_0), 0, 3680 }, /* MOVES.W #.W,-(An) */ +{ CPUFUNC_FF(op_e68_0), 0, 3688 }, /* MOVES.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_e70_0), 0, 3696 }, /* MOVES.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_e78_0), 0, 3704 }, /* MOVES.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_e79_0), 0, 3705 }, /* MOVES.W #.W,(xxx).L */ +{ CPUFUNC_FF(op_e90_0), 0, 3728 }, /* MOVES.L #.W,(An) */ +{ CPUFUNC_FF(op_e98_0), 0, 3736 }, /* MOVES.L #.W,(An)+ */ +{ CPUFUNC_FF(op_ea0_0), 0, 3744 }, /* MOVES.L #.W,-(An) */ +{ CPUFUNC_FF(op_ea8_0), 0, 3752 }, /* MOVES.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_eb0_0), 0, 3760 }, /* MOVES.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_eb8_0), 0, 3768 }, /* MOVES.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_eb9_0), 0, 3769 }, /* MOVES.L #.W,(xxx).L */ +{ CPUFUNC(op_ed0_0), 0, 3792 }, /* CAS.L #.W,(An) */ +{ CPUFUNC(op_ed8_0), 0, 3800 }, /* CAS.L #.W,(An)+ */ +{ CPUFUNC(op_ee0_0), 0, 3808 }, /* CAS.L #.W,-(An) */ +{ CPUFUNC(op_ee8_0), 0, 3816 }, /* CAS.L #.W,(d16,An) */ +{ CPUFUNC(op_ef0_0), 0, 3824 }, /* CAS.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_ef8_0), 0, 3832 }, /* CAS.L #.W,(xxx).W */ +{ CPUFUNC(op_ef9_0), 0, 3833 }, /* CAS.L #.W,(xxx).L */ +{ CPUFUNC(op_efc_0), 0, 3836 }, /* CAS2.L #.L */ +{ CPUFUNC(op_1000_0), 0, 4096 }, /* MOVE.B Dn,Dn */ +{ CPUFUNC(op_1010_0), 0, 4112 }, /* MOVE.B (An),Dn */ +{ CPUFUNC(op_1018_0), 0, 4120 }, /* MOVE.B (An)+,Dn */ +{ CPUFUNC(op_1020_0), 0, 4128 }, /* MOVE.B -(An),Dn */ +{ CPUFUNC(op_1028_0), 0, 4136 }, /* MOVE.B (d16,An),Dn */ +{ CPUFUNC(op_1030_0), 0, 4144 }, /* MOVE.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_1038_0), 0, 4152 }, /* MOVE.B (xxx).W,Dn */ +{ CPUFUNC(op_1039_0), 0, 4153 }, /* MOVE.B (xxx).L,Dn */ +{ CPUFUNC(op_103a_0), 0, 4154 }, /* MOVE.B (d16,PC),Dn */ +{ CPUFUNC(op_103b_0), 0, 4155 }, /* MOVE.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_103c_0), 0, 4156 }, /* MOVE.B #.B,Dn */ +{ CPUFUNC(op_1080_0), 0, 4224 }, /* MOVE.B Dn,(An) */ +{ CPUFUNC(op_1090_0), 0, 4240 }, /* MOVE.B (An),(An) */ +{ CPUFUNC(op_1098_0), 0, 4248 }, /* MOVE.B (An)+,(An) */ +{ CPUFUNC(op_10a0_0), 0, 4256 }, /* MOVE.B -(An),(An) */ +{ CPUFUNC(op_10a8_0), 0, 4264 }, /* MOVE.B (d16,An),(An) */ +{ CPUFUNC(op_10b0_0), 0, 4272 }, /* MOVE.B (d8,An,Xn),(An) */ +{ CPUFUNC(op_10b8_0), 0, 4280 }, /* MOVE.B (xxx).W,(An) */ +{ CPUFUNC(op_10b9_0), 0, 4281 }, /* MOVE.B (xxx).L,(An) */ +{ CPUFUNC(op_10ba_0), 0, 4282 }, /* MOVE.B (d16,PC),(An) */ +{ CPUFUNC(op_10bb_0), 0, 4283 }, /* MOVE.B (d8,PC,Xn),(An) */ +{ CPUFUNC(op_10bc_0), 0, 4284 }, /* MOVE.B #.B,(An) */ +{ CPUFUNC(op_10c0_0), 0, 4288 }, /* MOVE.B Dn,(An)+ */ +{ CPUFUNC(op_10d0_0), 0, 4304 }, /* MOVE.B (An),(An)+ */ +{ CPUFUNC(op_10d8_0), 0, 4312 }, /* MOVE.B (An)+,(An)+ */ +{ CPUFUNC(op_10e0_0), 0, 4320 }, /* MOVE.B -(An),(An)+ */ +{ CPUFUNC(op_10e8_0), 0, 4328 }, /* MOVE.B (d16,An),(An)+ */ +{ CPUFUNC(op_10f0_0), 0, 4336 }, /* MOVE.B (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_10f8_0), 0, 4344 }, /* MOVE.B (xxx).W,(An)+ */ +{ CPUFUNC(op_10f9_0), 0, 4345 }, /* MOVE.B (xxx).L,(An)+ */ +{ CPUFUNC(op_10fa_0), 0, 4346 }, /* MOVE.B (d16,PC),(An)+ */ +{ CPUFUNC(op_10fb_0), 0, 4347 }, /* MOVE.B (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_10fc_0), 0, 4348 }, /* MOVE.B #.B,(An)+ */ +{ CPUFUNC(op_1100_0), 0, 4352 }, /* MOVE.B Dn,-(An) */ +{ CPUFUNC(op_1110_0), 0, 4368 }, /* MOVE.B (An),-(An) */ +{ CPUFUNC(op_1118_0), 0, 4376 }, /* MOVE.B (An)+,-(An) */ +{ CPUFUNC(op_1120_0), 0, 4384 }, /* MOVE.B -(An),-(An) */ +{ CPUFUNC(op_1128_0), 0, 4392 }, /* MOVE.B (d16,An),-(An) */ +{ CPUFUNC(op_1130_0), 0, 4400 }, /* MOVE.B (d8,An,Xn),-(An) */ +{ CPUFUNC(op_1138_0), 0, 4408 }, /* MOVE.B (xxx).W,-(An) */ +{ CPUFUNC(op_1139_0), 0, 4409 }, /* MOVE.B (xxx).L,-(An) */ +{ CPUFUNC(op_113a_0), 0, 4410 }, /* MOVE.B (d16,PC),-(An) */ +{ CPUFUNC(op_113b_0), 0, 4411 }, /* MOVE.B (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_113c_0), 0, 4412 }, /* MOVE.B #.B,-(An) */ +{ CPUFUNC(op_1140_0), 0, 4416 }, /* MOVE.B Dn,(d16,An) */ +{ CPUFUNC(op_1150_0), 0, 4432 }, /* MOVE.B (An),(d16,An) */ +{ CPUFUNC(op_1158_0), 0, 4440 }, /* MOVE.B (An)+,(d16,An) */ +{ CPUFUNC(op_1160_0), 0, 4448 }, /* MOVE.B -(An),(d16,An) */ +{ CPUFUNC(op_1168_0), 0, 4456 }, /* MOVE.B (d16,An),(d16,An) */ +{ CPUFUNC(op_1170_0), 0, 4464 }, /* MOVE.B (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_1178_0), 0, 4472 }, /* MOVE.B (xxx).W,(d16,An) */ +{ CPUFUNC(op_1179_0), 0, 4473 }, /* MOVE.B (xxx).L,(d16,An) */ +{ CPUFUNC(op_117a_0), 0, 4474 }, /* MOVE.B (d16,PC),(d16,An) */ +{ CPUFUNC(op_117b_0), 0, 4475 }, /* MOVE.B (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_117c_0), 0, 4476 }, /* MOVE.B #.B,(d16,An) */ +{ CPUFUNC(op_1180_0), 0, 4480 }, /* MOVE.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1190_0), 0, 4496 }, /* MOVE.B (An),(d8,An,Xn) */ +{ CPUFUNC(op_1198_0), 0, 4504 }, /* MOVE.B (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_11a0_0), 0, 4512 }, /* MOVE.B -(An),(d8,An,Xn) */ +{ CPUFUNC(op_11a8_0), 0, 4520 }, /* MOVE.B (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_11b0_0), 0, 4528 }, /* MOVE.B (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_11b8_0), 0, 4536 }, /* MOVE.B (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_11b9_0), 0, 4537 }, /* MOVE.B (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_11ba_0), 0, 4538 }, /* MOVE.B (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_11bb_0), 0, 4539 }, /* MOVE.B (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_11bc_0), 0, 4540 }, /* MOVE.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_11c0_0), 0, 4544 }, /* MOVE.B Dn,(xxx).W */ +{ CPUFUNC(op_11d0_0), 0, 4560 }, /* MOVE.B (An),(xxx).W */ +{ CPUFUNC(op_11d8_0), 0, 4568 }, /* MOVE.B (An)+,(xxx).W */ +{ CPUFUNC(op_11e0_0), 0, 4576 }, /* MOVE.B -(An),(xxx).W */ +{ CPUFUNC(op_11e8_0), 0, 4584 }, /* MOVE.B (d16,An),(xxx).W */ +{ CPUFUNC(op_11f0_0), 0, 4592 }, /* MOVE.B (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_11f8_0), 0, 4600 }, /* MOVE.B (xxx).W,(xxx).W */ +{ CPUFUNC(op_11f9_0), 0, 4601 }, /* MOVE.B (xxx).L,(xxx).W */ +{ CPUFUNC(op_11fa_0), 0, 4602 }, /* MOVE.B (d16,PC),(xxx).W */ +{ CPUFUNC(op_11fb_0), 0, 4603 }, /* MOVE.B (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_11fc_0), 0, 4604 }, /* MOVE.B #.B,(xxx).W */ +{ CPUFUNC(op_13c0_0), 0, 5056 }, /* MOVE.B Dn,(xxx).L */ +{ CPUFUNC(op_13d0_0), 0, 5072 }, /* MOVE.B (An),(xxx).L */ +{ CPUFUNC(op_13d8_0), 0, 5080 }, /* MOVE.B (An)+,(xxx).L */ +{ CPUFUNC(op_13e0_0), 0, 5088 }, /* MOVE.B -(An),(xxx).L */ +{ CPUFUNC(op_13e8_0), 0, 5096 }, /* MOVE.B (d16,An),(xxx).L */ +{ CPUFUNC(op_13f0_0), 0, 5104 }, /* MOVE.B (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_13f8_0), 0, 5112 }, /* MOVE.B (xxx).W,(xxx).L */ +{ CPUFUNC(op_13f9_0), 0, 5113 }, /* MOVE.B (xxx).L,(xxx).L */ +{ CPUFUNC(op_13fa_0), 0, 5114 }, /* MOVE.B (d16,PC),(xxx).L */ +{ CPUFUNC(op_13fb_0), 0, 5115 }, /* MOVE.B (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_13fc_0), 0, 5116 }, /* MOVE.B #.B,(xxx).L */ +{ CPUFUNC(op_2000_0), 0, 8192 }, /* MOVE.L Dn,Dn */ +{ CPUFUNC(op_2008_0), 0, 8200 }, /* MOVE.L An,Dn */ +{ CPUFUNC(op_2010_0), 0, 8208 }, /* MOVE.L (An),Dn */ +{ CPUFUNC(op_2018_0), 0, 8216 }, /* MOVE.L (An)+,Dn */ +{ CPUFUNC(op_2020_0), 0, 8224 }, /* MOVE.L -(An),Dn */ +{ CPUFUNC(op_2028_0), 0, 8232 }, /* MOVE.L (d16,An),Dn */ +{ CPUFUNC(op_2030_0), 0, 8240 }, /* MOVE.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_2038_0), 0, 8248 }, /* MOVE.L (xxx).W,Dn */ +{ CPUFUNC(op_2039_0), 0, 8249 }, /* MOVE.L (xxx).L,Dn */ +{ CPUFUNC(op_203a_0), 0, 8250 }, /* MOVE.L (d16,PC),Dn */ +{ CPUFUNC(op_203b_0), 0, 8251 }, /* MOVE.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_203c_0), 0, 8252 }, /* MOVE.L #.L,Dn */ +{ CPUFUNC_FF(op_2040_0), 0, 8256 }, /* MOVEA.L Dn,An */ +{ CPUFUNC_FF(op_2048_0), 0, 8264 }, /* MOVEA.L An,An */ +{ CPUFUNC_FF(op_2050_0), 0, 8272 }, /* MOVEA.L (An),An */ +{ CPUFUNC_FF(op_2058_0), 0, 8280 }, /* MOVEA.L (An)+,An */ +{ CPUFUNC_FF(op_2060_0), 0, 8288 }, /* MOVEA.L -(An),An */ +{ CPUFUNC_FF(op_2068_0), 0, 8296 }, /* MOVEA.L (d16,An),An */ +{ CPUFUNC_FF(op_2070_0), 0, 8304 }, /* MOVEA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_2078_0), 0, 8312 }, /* MOVEA.L (xxx).W,An */ +{ CPUFUNC_FF(op_2079_0), 0, 8313 }, /* MOVEA.L (xxx).L,An */ +{ CPUFUNC_FF(op_207a_0), 0, 8314 }, /* MOVEA.L (d16,PC),An */ +{ CPUFUNC_FF(op_207b_0), 0, 8315 }, /* MOVEA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_207c_0), 0, 8316 }, /* MOVEA.L #.L,An */ +{ CPUFUNC(op_2080_0), 0, 8320 }, /* MOVE.L Dn,(An) */ +{ CPUFUNC(op_2088_0), 0, 8328 }, /* MOVE.L An,(An) */ +{ CPUFUNC(op_2090_0), 0, 8336 }, /* MOVE.L (An),(An) */ +{ CPUFUNC(op_2098_0), 0, 8344 }, /* MOVE.L (An)+,(An) */ +{ CPUFUNC(op_20a0_0), 0, 8352 }, /* MOVE.L -(An),(An) */ +{ CPUFUNC(op_20a8_0), 0, 8360 }, /* MOVE.L (d16,An),(An) */ +{ CPUFUNC(op_20b0_0), 0, 8368 }, /* MOVE.L (d8,An,Xn),(An) */ +{ CPUFUNC(op_20b8_0), 0, 8376 }, /* MOVE.L (xxx).W,(An) */ +{ CPUFUNC(op_20b9_0), 0, 8377 }, /* MOVE.L (xxx).L,(An) */ +{ CPUFUNC(op_20ba_0), 0, 8378 }, /* MOVE.L (d16,PC),(An) */ +{ CPUFUNC(op_20bb_0), 0, 8379 }, /* MOVE.L (d8,PC,Xn),(An) */ +{ CPUFUNC(op_20bc_0), 0, 8380 }, /* MOVE.L #.L,(An) */ +{ CPUFUNC(op_20c0_0), 0, 8384 }, /* MOVE.L Dn,(An)+ */ +{ CPUFUNC(op_20c8_0), 0, 8392 }, /* MOVE.L An,(An)+ */ +{ CPUFUNC(op_20d0_0), 0, 8400 }, /* MOVE.L (An),(An)+ */ +{ CPUFUNC(op_20d8_0), 0, 8408 }, /* MOVE.L (An)+,(An)+ */ +{ CPUFUNC(op_20e0_0), 0, 8416 }, /* MOVE.L -(An),(An)+ */ +{ CPUFUNC(op_20e8_0), 0, 8424 }, /* MOVE.L (d16,An),(An)+ */ +{ CPUFUNC(op_20f0_0), 0, 8432 }, /* MOVE.L (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_20f8_0), 0, 8440 }, /* MOVE.L (xxx).W,(An)+ */ +{ CPUFUNC(op_20f9_0), 0, 8441 }, /* MOVE.L (xxx).L,(An)+ */ +{ CPUFUNC(op_20fa_0), 0, 8442 }, /* MOVE.L (d16,PC),(An)+ */ +{ CPUFUNC(op_20fb_0), 0, 8443 }, /* MOVE.L (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_20fc_0), 0, 8444 }, /* MOVE.L #.L,(An)+ */ +{ CPUFUNC(op_2100_0), 0, 8448 }, /* MOVE.L Dn,-(An) */ +{ CPUFUNC(op_2108_0), 0, 8456 }, /* MOVE.L An,-(An) */ +{ CPUFUNC(op_2110_0), 0, 8464 }, /* MOVE.L (An),-(An) */ +{ CPUFUNC(op_2118_0), 0, 8472 }, /* MOVE.L (An)+,-(An) */ +{ CPUFUNC(op_2120_0), 0, 8480 }, /* MOVE.L -(An),-(An) */ +{ CPUFUNC(op_2128_0), 0, 8488 }, /* MOVE.L (d16,An),-(An) */ +{ CPUFUNC(op_2130_0), 0, 8496 }, /* MOVE.L (d8,An,Xn),-(An) */ +{ CPUFUNC(op_2138_0), 0, 8504 }, /* MOVE.L (xxx).W,-(An) */ +{ CPUFUNC(op_2139_0), 0, 8505 }, /* MOVE.L (xxx).L,-(An) */ +{ CPUFUNC(op_213a_0), 0, 8506 }, /* MOVE.L (d16,PC),-(An) */ +{ CPUFUNC(op_213b_0), 0, 8507 }, /* MOVE.L (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_213c_0), 0, 8508 }, /* MOVE.L #.L,-(An) */ +{ CPUFUNC(op_2140_0), 0, 8512 }, /* MOVE.L Dn,(d16,An) */ +{ CPUFUNC(op_2148_0), 0, 8520 }, /* MOVE.L An,(d16,An) */ +{ CPUFUNC(op_2150_0), 0, 8528 }, /* MOVE.L (An),(d16,An) */ +{ CPUFUNC(op_2158_0), 0, 8536 }, /* MOVE.L (An)+,(d16,An) */ +{ CPUFUNC(op_2160_0), 0, 8544 }, /* MOVE.L -(An),(d16,An) */ +{ CPUFUNC(op_2168_0), 0, 8552 }, /* MOVE.L (d16,An),(d16,An) */ +{ CPUFUNC(op_2170_0), 0, 8560 }, /* MOVE.L (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_2178_0), 0, 8568 }, /* MOVE.L (xxx).W,(d16,An) */ +{ CPUFUNC(op_2179_0), 0, 8569 }, /* MOVE.L (xxx).L,(d16,An) */ +{ CPUFUNC(op_217a_0), 0, 8570 }, /* MOVE.L (d16,PC),(d16,An) */ +{ CPUFUNC(op_217b_0), 0, 8571 }, /* MOVE.L (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_217c_0), 0, 8572 }, /* MOVE.L #.L,(d16,An) */ +{ CPUFUNC(op_2180_0), 0, 8576 }, /* MOVE.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_2188_0), 0, 8584 }, /* MOVE.L An,(d8,An,Xn) */ +{ CPUFUNC(op_2190_0), 0, 8592 }, /* MOVE.L (An),(d8,An,Xn) */ +{ CPUFUNC(op_2198_0), 0, 8600 }, /* MOVE.L (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_21a0_0), 0, 8608 }, /* MOVE.L -(An),(d8,An,Xn) */ +{ CPUFUNC(op_21a8_0), 0, 8616 }, /* MOVE.L (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_21b0_0), 0, 8624 }, /* MOVE.L (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_21b8_0), 0, 8632 }, /* MOVE.L (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_21b9_0), 0, 8633 }, /* MOVE.L (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_21ba_0), 0, 8634 }, /* MOVE.L (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_21bb_0), 0, 8635 }, /* MOVE.L (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_21bc_0), 0, 8636 }, /* MOVE.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_21c0_0), 0, 8640 }, /* MOVE.L Dn,(xxx).W */ +{ CPUFUNC(op_21c8_0), 0, 8648 }, /* MOVE.L An,(xxx).W */ +{ CPUFUNC(op_21d0_0), 0, 8656 }, /* MOVE.L (An),(xxx).W */ +{ CPUFUNC(op_21d8_0), 0, 8664 }, /* MOVE.L (An)+,(xxx).W */ +{ CPUFUNC(op_21e0_0), 0, 8672 }, /* MOVE.L -(An),(xxx).W */ +{ CPUFUNC(op_21e8_0), 0, 8680 }, /* MOVE.L (d16,An),(xxx).W */ +{ CPUFUNC(op_21f0_0), 0, 8688 }, /* MOVE.L (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_21f8_0), 0, 8696 }, /* MOVE.L (xxx).W,(xxx).W */ +{ CPUFUNC(op_21f9_0), 0, 8697 }, /* MOVE.L (xxx).L,(xxx).W */ +{ CPUFUNC(op_21fa_0), 0, 8698 }, /* MOVE.L (d16,PC),(xxx).W */ +{ CPUFUNC(op_21fb_0), 0, 8699 }, /* MOVE.L (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_21fc_0), 0, 8700 }, /* MOVE.L #.L,(xxx).W */ +{ CPUFUNC(op_23c0_0), 0, 9152 }, /* MOVE.L Dn,(xxx).L */ +{ CPUFUNC(op_23c8_0), 0, 9160 }, /* MOVE.L An,(xxx).L */ +{ CPUFUNC(op_23d0_0), 0, 9168 }, /* MOVE.L (An),(xxx).L */ +{ CPUFUNC(op_23d8_0), 0, 9176 }, /* MOVE.L (An)+,(xxx).L */ +{ CPUFUNC(op_23e0_0), 0, 9184 }, /* MOVE.L -(An),(xxx).L */ +{ CPUFUNC(op_23e8_0), 0, 9192 }, /* MOVE.L (d16,An),(xxx).L */ +{ CPUFUNC(op_23f0_0), 0, 9200 }, /* MOVE.L (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_23f8_0), 0, 9208 }, /* MOVE.L (xxx).W,(xxx).L */ +{ CPUFUNC(op_23f9_0), 0, 9209 }, /* MOVE.L (xxx).L,(xxx).L */ +{ CPUFUNC(op_23fa_0), 0, 9210 }, /* MOVE.L (d16,PC),(xxx).L */ +{ CPUFUNC(op_23fb_0), 0, 9211 }, /* MOVE.L (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_23fc_0), 0, 9212 }, /* MOVE.L #.L,(xxx).L */ +{ CPUFUNC(op_3000_0), 0, 12288 }, /* MOVE.W Dn,Dn */ +{ CPUFUNC(op_3008_0), 0, 12296 }, /* MOVE.W An,Dn */ +{ CPUFUNC(op_3010_0), 0, 12304 }, /* MOVE.W (An),Dn */ +{ CPUFUNC(op_3018_0), 0, 12312 }, /* MOVE.W (An)+,Dn */ +{ CPUFUNC(op_3020_0), 0, 12320 }, /* MOVE.W -(An),Dn */ +{ CPUFUNC(op_3028_0), 0, 12328 }, /* MOVE.W (d16,An),Dn */ +{ CPUFUNC(op_3030_0), 0, 12336 }, /* MOVE.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_3038_0), 0, 12344 }, /* MOVE.W (xxx).W,Dn */ +{ CPUFUNC(op_3039_0), 0, 12345 }, /* MOVE.W (xxx).L,Dn */ +{ CPUFUNC(op_303a_0), 0, 12346 }, /* MOVE.W (d16,PC),Dn */ +{ CPUFUNC(op_303b_0), 0, 12347 }, /* MOVE.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_303c_0), 0, 12348 }, /* MOVE.W #.W,Dn */ +{ CPUFUNC_FF(op_3040_0), 0, 12352 }, /* MOVEA.W Dn,An */ +{ CPUFUNC_FF(op_3048_0), 0, 12360 }, /* MOVEA.W An,An */ +{ CPUFUNC_FF(op_3050_0), 0, 12368 }, /* MOVEA.W (An),An */ +{ CPUFUNC_FF(op_3058_0), 0, 12376 }, /* MOVEA.W (An)+,An */ +{ CPUFUNC_FF(op_3060_0), 0, 12384 }, /* MOVEA.W -(An),An */ +{ CPUFUNC_FF(op_3068_0), 0, 12392 }, /* MOVEA.W (d16,An),An */ +{ CPUFUNC_FF(op_3070_0), 0, 12400 }, /* MOVEA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_3078_0), 0, 12408 }, /* MOVEA.W (xxx).W,An */ +{ CPUFUNC_FF(op_3079_0), 0, 12409 }, /* MOVEA.W (xxx).L,An */ +{ CPUFUNC_FF(op_307a_0), 0, 12410 }, /* MOVEA.W (d16,PC),An */ +{ CPUFUNC_FF(op_307b_0), 0, 12411 }, /* MOVEA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_307c_0), 0, 12412 }, /* MOVEA.W #.W,An */ +{ CPUFUNC(op_3080_0), 0, 12416 }, /* MOVE.W Dn,(An) */ +{ CPUFUNC(op_3088_0), 0, 12424 }, /* MOVE.W An,(An) */ +{ CPUFUNC(op_3090_0), 0, 12432 }, /* MOVE.W (An),(An) */ +{ CPUFUNC(op_3098_0), 0, 12440 }, /* MOVE.W (An)+,(An) */ +{ CPUFUNC(op_30a0_0), 0, 12448 }, /* MOVE.W -(An),(An) */ +{ CPUFUNC(op_30a8_0), 0, 12456 }, /* MOVE.W (d16,An),(An) */ +{ CPUFUNC(op_30b0_0), 0, 12464 }, /* MOVE.W (d8,An,Xn),(An) */ +{ CPUFUNC(op_30b8_0), 0, 12472 }, /* MOVE.W (xxx).W,(An) */ +{ CPUFUNC(op_30b9_0), 0, 12473 }, /* MOVE.W (xxx).L,(An) */ +{ CPUFUNC(op_30ba_0), 0, 12474 }, /* MOVE.W (d16,PC),(An) */ +{ CPUFUNC(op_30bb_0), 0, 12475 }, /* MOVE.W (d8,PC,Xn),(An) */ +{ CPUFUNC(op_30bc_0), 0, 12476 }, /* MOVE.W #.W,(An) */ +{ CPUFUNC(op_30c0_0), 0, 12480 }, /* MOVE.W Dn,(An)+ */ +{ CPUFUNC(op_30c8_0), 0, 12488 }, /* MOVE.W An,(An)+ */ +{ CPUFUNC(op_30d0_0), 0, 12496 }, /* MOVE.W (An),(An)+ */ +{ CPUFUNC(op_30d8_0), 0, 12504 }, /* MOVE.W (An)+,(An)+ */ +{ CPUFUNC(op_30e0_0), 0, 12512 }, /* MOVE.W -(An),(An)+ */ +{ CPUFUNC(op_30e8_0), 0, 12520 }, /* MOVE.W (d16,An),(An)+ */ +{ CPUFUNC(op_30f0_0), 0, 12528 }, /* MOVE.W (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_30f8_0), 0, 12536 }, /* MOVE.W (xxx).W,(An)+ */ +{ CPUFUNC(op_30f9_0), 0, 12537 }, /* MOVE.W (xxx).L,(An)+ */ +{ CPUFUNC(op_30fa_0), 0, 12538 }, /* MOVE.W (d16,PC),(An)+ */ +{ CPUFUNC(op_30fb_0), 0, 12539 }, /* MOVE.W (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_30fc_0), 0, 12540 }, /* MOVE.W #.W,(An)+ */ +{ CPUFUNC(op_3100_0), 0, 12544 }, /* MOVE.W Dn,-(An) */ +{ CPUFUNC(op_3108_0), 0, 12552 }, /* MOVE.W An,-(An) */ +{ CPUFUNC(op_3110_0), 0, 12560 }, /* MOVE.W (An),-(An) */ +{ CPUFUNC(op_3118_0), 0, 12568 }, /* MOVE.W (An)+,-(An) */ +{ CPUFUNC(op_3120_0), 0, 12576 }, /* MOVE.W -(An),-(An) */ +{ CPUFUNC(op_3128_0), 0, 12584 }, /* MOVE.W (d16,An),-(An) */ +{ CPUFUNC(op_3130_0), 0, 12592 }, /* MOVE.W (d8,An,Xn),-(An) */ +{ CPUFUNC(op_3138_0), 0, 12600 }, /* MOVE.W (xxx).W,-(An) */ +{ CPUFUNC(op_3139_0), 0, 12601 }, /* MOVE.W (xxx).L,-(An) */ +{ CPUFUNC(op_313a_0), 0, 12602 }, /* MOVE.W (d16,PC),-(An) */ +{ CPUFUNC(op_313b_0), 0, 12603 }, /* MOVE.W (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_313c_0), 0, 12604 }, /* MOVE.W #.W,-(An) */ +{ CPUFUNC(op_3140_0), 0, 12608 }, /* MOVE.W Dn,(d16,An) */ +{ CPUFUNC(op_3148_0), 0, 12616 }, /* MOVE.W An,(d16,An) */ +{ CPUFUNC(op_3150_0), 0, 12624 }, /* MOVE.W (An),(d16,An) */ +{ CPUFUNC(op_3158_0), 0, 12632 }, /* MOVE.W (An)+,(d16,An) */ +{ CPUFUNC(op_3160_0), 0, 12640 }, /* MOVE.W -(An),(d16,An) */ +{ CPUFUNC(op_3168_0), 0, 12648 }, /* MOVE.W (d16,An),(d16,An) */ +{ CPUFUNC(op_3170_0), 0, 12656 }, /* MOVE.W (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_3178_0), 0, 12664 }, /* MOVE.W (xxx).W,(d16,An) */ +{ CPUFUNC(op_3179_0), 0, 12665 }, /* MOVE.W (xxx).L,(d16,An) */ +{ CPUFUNC(op_317a_0), 0, 12666 }, /* MOVE.W (d16,PC),(d16,An) */ +{ CPUFUNC(op_317b_0), 0, 12667 }, /* MOVE.W (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_317c_0), 0, 12668 }, /* MOVE.W #.W,(d16,An) */ +{ CPUFUNC(op_3180_0), 0, 12672 }, /* MOVE.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_3188_0), 0, 12680 }, /* MOVE.W An,(d8,An,Xn) */ +{ CPUFUNC(op_3190_0), 0, 12688 }, /* MOVE.W (An),(d8,An,Xn) */ +{ CPUFUNC(op_3198_0), 0, 12696 }, /* MOVE.W (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_31a0_0), 0, 12704 }, /* MOVE.W -(An),(d8,An,Xn) */ +{ CPUFUNC(op_31a8_0), 0, 12712 }, /* MOVE.W (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_31b0_0), 0, 12720 }, /* MOVE.W (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_31b8_0), 0, 12728 }, /* MOVE.W (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_31b9_0), 0, 12729 }, /* MOVE.W (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_31ba_0), 0, 12730 }, /* MOVE.W (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_31bb_0), 0, 12731 }, /* MOVE.W (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_31bc_0), 0, 12732 }, /* MOVE.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_31c0_0), 0, 12736 }, /* MOVE.W Dn,(xxx).W */ +{ CPUFUNC(op_31c8_0), 0, 12744 }, /* MOVE.W An,(xxx).W */ +{ CPUFUNC(op_31d0_0), 0, 12752 }, /* MOVE.W (An),(xxx).W */ +{ CPUFUNC(op_31d8_0), 0, 12760 }, /* MOVE.W (An)+,(xxx).W */ +{ CPUFUNC(op_31e0_0), 0, 12768 }, /* MOVE.W -(An),(xxx).W */ +{ CPUFUNC(op_31e8_0), 0, 12776 }, /* MOVE.W (d16,An),(xxx).W */ +{ CPUFUNC(op_31f0_0), 0, 12784 }, /* MOVE.W (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_31f8_0), 0, 12792 }, /* MOVE.W (xxx).W,(xxx).W */ +{ CPUFUNC(op_31f9_0), 0, 12793 }, /* MOVE.W (xxx).L,(xxx).W */ +{ CPUFUNC(op_31fa_0), 0, 12794 }, /* MOVE.W (d16,PC),(xxx).W */ +{ CPUFUNC(op_31fb_0), 0, 12795 }, /* MOVE.W (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_31fc_0), 0, 12796 }, /* MOVE.W #.W,(xxx).W */ +{ CPUFUNC(op_33c0_0), 0, 13248 }, /* MOVE.W Dn,(xxx).L */ +{ CPUFUNC(op_33c8_0), 0, 13256 }, /* MOVE.W An,(xxx).L */ +{ CPUFUNC(op_33d0_0), 0, 13264 }, /* MOVE.W (An),(xxx).L */ +{ CPUFUNC(op_33d8_0), 0, 13272 }, /* MOVE.W (An)+,(xxx).L */ +{ CPUFUNC(op_33e0_0), 0, 13280 }, /* MOVE.W -(An),(xxx).L */ +{ CPUFUNC(op_33e8_0), 0, 13288 }, /* MOVE.W (d16,An),(xxx).L */ +{ CPUFUNC(op_33f0_0), 0, 13296 }, /* MOVE.W (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_33f8_0), 0, 13304 }, /* MOVE.W (xxx).W,(xxx).L */ +{ CPUFUNC(op_33f9_0), 0, 13305 }, /* MOVE.W (xxx).L,(xxx).L */ +{ CPUFUNC(op_33fa_0), 0, 13306 }, /* MOVE.W (d16,PC),(xxx).L */ +{ CPUFUNC(op_33fb_0), 0, 13307 }, /* MOVE.W (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_33fc_0), 0, 13308 }, /* MOVE.W #.W,(xxx).L */ +{ CPUFUNC(op_4000_0), 0, 16384 }, /* NEGX.B Dn */ +{ CPUFUNC(op_4010_0), 0, 16400 }, /* NEGX.B (An) */ +{ CPUFUNC(op_4018_0), 0, 16408 }, /* NEGX.B (An)+ */ +{ CPUFUNC(op_4020_0), 0, 16416 }, /* NEGX.B -(An) */ +{ CPUFUNC(op_4028_0), 0, 16424 }, /* NEGX.B (d16,An) */ +{ CPUFUNC(op_4030_0), 0, 16432 }, /* NEGX.B (d8,An,Xn) */ +{ CPUFUNC(op_4038_0), 0, 16440 }, /* NEGX.B (xxx).W */ +{ CPUFUNC(op_4039_0), 0, 16441 }, /* NEGX.B (xxx).L */ +{ CPUFUNC(op_4040_0), 0, 16448 }, /* NEGX.W Dn */ +{ CPUFUNC(op_4050_0), 0, 16464 }, /* NEGX.W (An) */ +{ CPUFUNC(op_4058_0), 0, 16472 }, /* NEGX.W (An)+ */ +{ CPUFUNC(op_4060_0), 0, 16480 }, /* NEGX.W -(An) */ +{ CPUFUNC(op_4068_0), 0, 16488 }, /* NEGX.W (d16,An) */ +{ CPUFUNC(op_4070_0), 0, 16496 }, /* NEGX.W (d8,An,Xn) */ +{ CPUFUNC(op_4078_0), 0, 16504 }, /* NEGX.W (xxx).W */ +{ CPUFUNC(op_4079_0), 0, 16505 }, /* NEGX.W (xxx).L */ +{ CPUFUNC(op_4080_0), 0, 16512 }, /* NEGX.L Dn */ +{ CPUFUNC(op_4090_0), 0, 16528 }, /* NEGX.L (An) */ +{ CPUFUNC(op_4098_0), 0, 16536 }, /* NEGX.L (An)+ */ +{ CPUFUNC(op_40a0_0), 0, 16544 }, /* NEGX.L -(An) */ +{ CPUFUNC(op_40a8_0), 0, 16552 }, /* NEGX.L (d16,An) */ +{ CPUFUNC(op_40b0_0), 0, 16560 }, /* NEGX.L (d8,An,Xn) */ +{ CPUFUNC(op_40b8_0), 0, 16568 }, /* NEGX.L (xxx).W */ +{ CPUFUNC(op_40b9_0), 0, 16569 }, /* NEGX.L (xxx).L */ +{ CPUFUNC_FF(op_40c0_0), 0, 16576 }, /* MVSR2.W Dn */ +{ CPUFUNC_FF(op_40d0_0), 0, 16592 }, /* MVSR2.W (An) */ +{ CPUFUNC_FF(op_40d8_0), 0, 16600 }, /* MVSR2.W (An)+ */ +{ CPUFUNC_FF(op_40e0_0), 0, 16608 }, /* MVSR2.W -(An) */ +{ CPUFUNC_FF(op_40e8_0), 0, 16616 }, /* MVSR2.W (d16,An) */ +{ CPUFUNC_FF(op_40f0_0), 0, 16624 }, /* MVSR2.W (d8,An,Xn) */ +{ CPUFUNC_FF(op_40f8_0), 0, 16632 }, /* MVSR2.W (xxx).W */ +{ CPUFUNC_FF(op_40f9_0), 0, 16633 }, /* MVSR2.W (xxx).L */ +{ CPUFUNC(op_4100_0), 0, 16640 }, /* CHK.L Dn,Dn */ +{ CPUFUNC(op_4110_0), 0, 16656 }, /* CHK.L (An),Dn */ +{ CPUFUNC(op_4118_0), 0, 16664 }, /* CHK.L (An)+,Dn */ +{ CPUFUNC(op_4120_0), 0, 16672 }, /* CHK.L -(An),Dn */ +{ CPUFUNC(op_4128_0), 0, 16680 }, /* CHK.L (d16,An),Dn */ +{ CPUFUNC(op_4130_0), 0, 16688 }, /* CHK.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_4138_0), 0, 16696 }, /* CHK.L (xxx).W,Dn */ +{ CPUFUNC(op_4139_0), 0, 16697 }, /* CHK.L (xxx).L,Dn */ +{ CPUFUNC(op_413a_0), 0, 16698 }, /* CHK.L (d16,PC),Dn */ +{ CPUFUNC(op_413b_0), 0, 16699 }, /* CHK.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_413c_0), 0, 16700 }, /* CHK.L #.L,Dn */ +{ CPUFUNC(op_4180_0), 0, 16768 }, /* CHK.W Dn,Dn */ +{ CPUFUNC(op_4190_0), 0, 16784 }, /* CHK.W (An),Dn */ +{ CPUFUNC(op_4198_0), 0, 16792 }, /* CHK.W (An)+,Dn */ +{ CPUFUNC(op_41a0_0), 0, 16800 }, /* CHK.W -(An),Dn */ +{ CPUFUNC(op_41a8_0), 0, 16808 }, /* CHK.W (d16,An),Dn */ +{ CPUFUNC(op_41b0_0), 0, 16816 }, /* CHK.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_41b8_0), 0, 16824 }, /* CHK.W (xxx).W,Dn */ +{ CPUFUNC(op_41b9_0), 0, 16825 }, /* CHK.W (xxx).L,Dn */ +{ CPUFUNC(op_41ba_0), 0, 16826 }, /* CHK.W (d16,PC),Dn */ +{ CPUFUNC(op_41bb_0), 0, 16827 }, /* CHK.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_41bc_0), 0, 16828 }, /* CHK.W #.W,Dn */ +{ CPUFUNC_FF(op_41d0_0), 0, 16848 }, /* LEA.L (An),An */ +{ CPUFUNC_FF(op_41e8_0), 0, 16872 }, /* LEA.L (d16,An),An */ +{ CPUFUNC_FF(op_41f0_0), 0, 16880 }, /* LEA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_41f8_0), 0, 16888 }, /* LEA.L (xxx).W,An */ +{ CPUFUNC_FF(op_41f9_0), 0, 16889 }, /* LEA.L (xxx).L,An */ +{ CPUFUNC_FF(op_41fa_0), 0, 16890 }, /* LEA.L (d16,PC),An */ +{ CPUFUNC_FF(op_41fb_0), 0, 16891 }, /* LEA.L (d8,PC,Xn),An */ +{ CPUFUNC(op_4200_0), 0, 16896 }, /* CLR.B Dn */ +{ CPUFUNC(op_4210_0), 0, 16912 }, /* CLR.B (An) */ +{ CPUFUNC(op_4218_0), 0, 16920 }, /* CLR.B (An)+ */ +{ CPUFUNC(op_4220_0), 0, 16928 }, /* CLR.B -(An) */ +{ CPUFUNC(op_4228_0), 0, 16936 }, /* CLR.B (d16,An) */ +{ CPUFUNC(op_4230_0), 0, 16944 }, /* CLR.B (d8,An,Xn) */ +{ CPUFUNC(op_4238_0), 0, 16952 }, /* CLR.B (xxx).W */ +{ CPUFUNC(op_4239_0), 0, 16953 }, /* CLR.B (xxx).L */ +{ CPUFUNC(op_4240_0), 0, 16960 }, /* CLR.W Dn */ +{ CPUFUNC(op_4250_0), 0, 16976 }, /* CLR.W (An) */ +{ CPUFUNC(op_4258_0), 0, 16984 }, /* CLR.W (An)+ */ +{ CPUFUNC(op_4260_0), 0, 16992 }, /* CLR.W -(An) */ +{ CPUFUNC(op_4268_0), 0, 17000 }, /* CLR.W (d16,An) */ +{ CPUFUNC(op_4270_0), 0, 17008 }, /* CLR.W (d8,An,Xn) */ +{ CPUFUNC(op_4278_0), 0, 17016 }, /* CLR.W (xxx).W */ +{ CPUFUNC(op_4279_0), 0, 17017 }, /* CLR.W (xxx).L */ +{ CPUFUNC(op_4280_0), 0, 17024 }, /* CLR.L Dn */ +{ CPUFUNC(op_4290_0), 0, 17040 }, /* CLR.L (An) */ +{ CPUFUNC(op_4298_0), 0, 17048 }, /* CLR.L (An)+ */ +{ CPUFUNC(op_42a0_0), 0, 17056 }, /* CLR.L -(An) */ +{ CPUFUNC(op_42a8_0), 0, 17064 }, /* CLR.L (d16,An) */ +{ CPUFUNC(op_42b0_0), 0, 17072 }, /* CLR.L (d8,An,Xn) */ +{ CPUFUNC(op_42b8_0), 0, 17080 }, /* CLR.L (xxx).W */ +{ CPUFUNC(op_42b9_0), 0, 17081 }, /* CLR.L (xxx).L */ +{ CPUFUNC_FF(op_42c0_0), 0, 17088 }, /* MVSR2.B Dn */ +{ CPUFUNC_FF(op_42d0_0), 0, 17104 }, /* MVSR2.B (An) */ +{ CPUFUNC_FF(op_42d8_0), 0, 17112 }, /* MVSR2.B (An)+ */ +{ CPUFUNC_FF(op_42e0_0), 0, 17120 }, /* MVSR2.B -(An) */ +{ CPUFUNC_FF(op_42e8_0), 0, 17128 }, /* MVSR2.B (d16,An) */ +{ CPUFUNC_FF(op_42f0_0), 0, 17136 }, /* MVSR2.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_42f8_0), 0, 17144 }, /* MVSR2.B (xxx).W */ +{ CPUFUNC_FF(op_42f9_0), 0, 17145 }, /* MVSR2.B (xxx).L */ +{ CPUFUNC(op_4400_0), 0, 17408 }, /* NEG.B Dn */ +{ CPUFUNC(op_4410_0), 0, 17424 }, /* NEG.B (An) */ +{ CPUFUNC(op_4418_0), 0, 17432 }, /* NEG.B (An)+ */ +{ CPUFUNC(op_4420_0), 0, 17440 }, /* NEG.B -(An) */ +{ CPUFUNC(op_4428_0), 0, 17448 }, /* NEG.B (d16,An) */ +{ CPUFUNC(op_4430_0), 0, 17456 }, /* NEG.B (d8,An,Xn) */ +{ CPUFUNC(op_4438_0), 0, 17464 }, /* NEG.B (xxx).W */ +{ CPUFUNC(op_4439_0), 0, 17465 }, /* NEG.B (xxx).L */ +{ CPUFUNC(op_4440_0), 0, 17472 }, /* NEG.W Dn */ +{ CPUFUNC(op_4450_0), 0, 17488 }, /* NEG.W (An) */ +{ CPUFUNC(op_4458_0), 0, 17496 }, /* NEG.W (An)+ */ +{ CPUFUNC(op_4460_0), 0, 17504 }, /* NEG.W -(An) */ +{ CPUFUNC(op_4468_0), 0, 17512 }, /* NEG.W (d16,An) */ +{ CPUFUNC(op_4470_0), 0, 17520 }, /* NEG.W (d8,An,Xn) */ +{ CPUFUNC(op_4478_0), 0, 17528 }, /* NEG.W (xxx).W */ +{ CPUFUNC(op_4479_0), 0, 17529 }, /* NEG.W (xxx).L */ +{ CPUFUNC(op_4480_0), 0, 17536 }, /* NEG.L Dn */ +{ CPUFUNC(op_4490_0), 0, 17552 }, /* NEG.L (An) */ +{ CPUFUNC(op_4498_0), 0, 17560 }, /* NEG.L (An)+ */ +{ CPUFUNC(op_44a0_0), 0, 17568 }, /* NEG.L -(An) */ +{ CPUFUNC(op_44a8_0), 0, 17576 }, /* NEG.L (d16,An) */ +{ CPUFUNC(op_44b0_0), 0, 17584 }, /* NEG.L (d8,An,Xn) */ +{ CPUFUNC(op_44b8_0), 0, 17592 }, /* NEG.L (xxx).W */ +{ CPUFUNC(op_44b9_0), 0, 17593 }, /* NEG.L (xxx).L */ +{ CPUFUNC(op_44c0_0), 0, 17600 }, /* MV2SR.B Dn */ +{ CPUFUNC(op_44d0_0), 0, 17616 }, /* MV2SR.B (An) */ +{ CPUFUNC(op_44d8_0), 0, 17624 }, /* MV2SR.B (An)+ */ +{ CPUFUNC(op_44e0_0), 0, 17632 }, /* MV2SR.B -(An) */ +{ CPUFUNC(op_44e8_0), 0, 17640 }, /* MV2SR.B (d16,An) */ +{ CPUFUNC(op_44f0_0), 0, 17648 }, /* MV2SR.B (d8,An,Xn) */ +{ CPUFUNC(op_44f8_0), 0, 17656 }, /* MV2SR.B (xxx).W */ +{ CPUFUNC(op_44f9_0), 0, 17657 }, /* MV2SR.B (xxx).L */ +{ CPUFUNC(op_44fa_0), 0, 17658 }, /* MV2SR.B (d16,PC) */ +{ CPUFUNC(op_44fb_0), 0, 17659 }, /* MV2SR.B (d8,PC,Xn) */ +{ CPUFUNC(op_44fc_0), 0, 17660 }, /* MV2SR.B #.B */ +{ CPUFUNC(op_4600_0), 0, 17920 }, /* NOT.B Dn */ +{ CPUFUNC(op_4610_0), 0, 17936 }, /* NOT.B (An) */ +{ CPUFUNC(op_4618_0), 0, 17944 }, /* NOT.B (An)+ */ +{ CPUFUNC(op_4620_0), 0, 17952 }, /* NOT.B -(An) */ +{ CPUFUNC(op_4628_0), 0, 17960 }, /* NOT.B (d16,An) */ +{ CPUFUNC(op_4630_0), 0, 17968 }, /* NOT.B (d8,An,Xn) */ +{ CPUFUNC(op_4638_0), 0, 17976 }, /* NOT.B (xxx).W */ +{ CPUFUNC(op_4639_0), 0, 17977 }, /* NOT.B (xxx).L */ +{ CPUFUNC(op_4640_0), 0, 17984 }, /* NOT.W Dn */ +{ CPUFUNC(op_4650_0), 0, 18000 }, /* NOT.W (An) */ +{ CPUFUNC(op_4658_0), 0, 18008 }, /* NOT.W (An)+ */ +{ CPUFUNC(op_4660_0), 0, 18016 }, /* NOT.W -(An) */ +{ CPUFUNC(op_4668_0), 0, 18024 }, /* NOT.W (d16,An) */ +{ CPUFUNC(op_4670_0), 0, 18032 }, /* NOT.W (d8,An,Xn) */ +{ CPUFUNC(op_4678_0), 0, 18040 }, /* NOT.W (xxx).W */ +{ CPUFUNC(op_4679_0), 0, 18041 }, /* NOT.W (xxx).L */ +{ CPUFUNC(op_4680_0), 0, 18048 }, /* NOT.L Dn */ +{ CPUFUNC(op_4690_0), 0, 18064 }, /* NOT.L (An) */ +{ CPUFUNC(op_4698_0), 0, 18072 }, /* NOT.L (An)+ */ +{ CPUFUNC(op_46a0_0), 0, 18080 }, /* NOT.L -(An) */ +{ CPUFUNC(op_46a8_0), 0, 18088 }, /* NOT.L (d16,An) */ +{ CPUFUNC(op_46b0_0), 0, 18096 }, /* NOT.L (d8,An,Xn) */ +{ CPUFUNC(op_46b8_0), 0, 18104 }, /* NOT.L (xxx).W */ +{ CPUFUNC(op_46b9_0), 0, 18105 }, /* NOT.L (xxx).L */ +{ CPUFUNC(op_46c0_0), 0, 18112 }, /* MV2SR.W Dn */ +{ CPUFUNC(op_46d0_0), 0, 18128 }, /* MV2SR.W (An) */ +{ CPUFUNC(op_46d8_0), 0, 18136 }, /* MV2SR.W (An)+ */ +{ CPUFUNC(op_46e0_0), 0, 18144 }, /* MV2SR.W -(An) */ +{ CPUFUNC(op_46e8_0), 0, 18152 }, /* MV2SR.W (d16,An) */ +{ CPUFUNC(op_46f0_0), 0, 18160 }, /* MV2SR.W (d8,An,Xn) */ +{ CPUFUNC(op_46f8_0), 0, 18168 }, /* MV2SR.W (xxx).W */ +{ CPUFUNC(op_46f9_0), 0, 18169 }, /* MV2SR.W (xxx).L */ +{ CPUFUNC(op_46fa_0), 0, 18170 }, /* MV2SR.W (d16,PC) */ +{ CPUFUNC(op_46fb_0), 0, 18171 }, /* MV2SR.W (d8,PC,Xn) */ +{ CPUFUNC(op_46fc_0), 0, 18172 }, /* MV2SR.W #.W */ +{ CPUFUNC(op_4800_1), 0, 18432 }, /* NBCD.B Dn */ +{ CPUFUNC_FF(op_4808_0), 0, 18440 }, /* LINK.L An,#.L */ +{ CPUFUNC(op_4810_1), 0, 18448 }, /* NBCD.B (An) */ +{ CPUFUNC(op_4818_1), 0, 18456 }, /* NBCD.B (An)+ */ +{ CPUFUNC(op_4820_1), 0, 18464 }, /* NBCD.B -(An) */ +{ CPUFUNC(op_4828_1), 0, 18472 }, /* NBCD.B (d16,An) */ +{ CPUFUNC(op_4830_1), 0, 18480 }, /* NBCD.B (d8,An,Xn) */ +{ CPUFUNC(op_4838_1), 0, 18488 }, /* NBCD.B (xxx).W */ +{ CPUFUNC(op_4839_1), 0, 18489 }, /* NBCD.B (xxx).L */ +{ CPUFUNC(op_4840_0), 0, 18496 }, /* SWAP.W Dn */ +{ CPUFUNC_FF(op_4848_0), 0, 18504 }, /* BKPT.L # */ +{ CPUFUNC_FF(op_4850_0), 0, 18512 }, /* PEA.L (An) */ +{ CPUFUNC_FF(op_4868_0), 0, 18536 }, /* PEA.L (d16,An) */ +{ CPUFUNC_FF(op_4870_0), 0, 18544 }, /* PEA.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4878_0), 0, 18552 }, /* PEA.L (xxx).W */ +{ CPUFUNC_FF(op_4879_0), 0, 18553 }, /* PEA.L (xxx).L */ +{ CPUFUNC_FF(op_487a_0), 0, 18554 }, /* PEA.L (d16,PC) */ +{ CPUFUNC_FF(op_487b_0), 0, 18555 }, /* PEA.L (d8,PC,Xn) */ +{ CPUFUNC(op_4880_0), 0, 18560 }, /* EXT.W Dn */ +{ CPUFUNC_FF(op_4890_0), 0, 18576 }, /* MVMLE.W #.W,(An) */ +{ CPUFUNC_FF(op_48a0_0), 0, 18592 }, /* MVMLE.W #.W,-(An) */ +{ CPUFUNC_FF(op_48a8_0), 0, 18600 }, /* MVMLE.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_48b0_0), 0, 18608 }, /* MVMLE.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_48b8_0), 0, 18616 }, /* MVMLE.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_48b9_0), 0, 18617 }, /* MVMLE.W #.W,(xxx).L */ +{ CPUFUNC(op_48c0_0), 0, 18624 }, /* EXT.L Dn */ +{ CPUFUNC_FF(op_48d0_0), 0, 18640 }, /* MVMLE.L #.W,(An) */ +{ CPUFUNC_FF(op_48e0_0), 0, 18656 }, /* MVMLE.L #.W,-(An) */ +{ CPUFUNC_FF(op_48e8_0), 0, 18664 }, /* MVMLE.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_48f0_0), 0, 18672 }, /* MVMLE.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_48f8_0), 0, 18680 }, /* MVMLE.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_48f9_0), 0, 18681 }, /* MVMLE.L #.W,(xxx).L */ +{ CPUFUNC(op_49c0_0), 0, 18880 }, /* EXT.B Dn */ +{ CPUFUNC(op_4a00_0), 0, 18944 }, /* TST.B Dn */ +{ CPUFUNC(op_4a10_0), 0, 18960 }, /* TST.B (An) */ +{ CPUFUNC(op_4a18_0), 0, 18968 }, /* TST.B (An)+ */ +{ CPUFUNC(op_4a20_0), 0, 18976 }, /* TST.B -(An) */ +{ CPUFUNC(op_4a28_0), 0, 18984 }, /* TST.B (d16,An) */ +{ CPUFUNC(op_4a30_0), 0, 18992 }, /* TST.B (d8,An,Xn) */ +{ CPUFUNC(op_4a38_0), 0, 19000 }, /* TST.B (xxx).W */ +{ CPUFUNC(op_4a39_0), 0, 19001 }, /* TST.B (xxx).L */ +{ CPUFUNC(op_4a3a_0), 0, 19002 }, /* TST.B (d16,PC) */ +{ CPUFUNC(op_4a3b_0), 0, 19003 }, /* TST.B (d8,PC,Xn) */ +{ CPUFUNC(op_4a3c_0), 0, 19004 }, /* TST.B #.B */ +{ CPUFUNC(op_4a40_0), 0, 19008 }, /* TST.W Dn */ +{ CPUFUNC(op_4a48_0), 0, 19016 }, /* TST.W An */ +{ CPUFUNC(op_4a50_0), 0, 19024 }, /* TST.W (An) */ +{ CPUFUNC(op_4a58_0), 0, 19032 }, /* TST.W (An)+ */ +{ CPUFUNC(op_4a60_0), 0, 19040 }, /* TST.W -(An) */ +{ CPUFUNC(op_4a68_0), 0, 19048 }, /* TST.W (d16,An) */ +{ CPUFUNC(op_4a70_0), 0, 19056 }, /* TST.W (d8,An,Xn) */ +{ CPUFUNC(op_4a78_0), 0, 19064 }, /* TST.W (xxx).W */ +{ CPUFUNC(op_4a79_0), 0, 19065 }, /* TST.W (xxx).L */ +{ CPUFUNC(op_4a7a_0), 0, 19066 }, /* TST.W (d16,PC) */ +{ CPUFUNC(op_4a7b_0), 0, 19067 }, /* TST.W (d8,PC,Xn) */ +{ CPUFUNC(op_4a7c_0), 0, 19068 }, /* TST.W #.W */ +{ CPUFUNC(op_4a80_0), 0, 19072 }, /* TST.L Dn */ +{ CPUFUNC(op_4a88_0), 0, 19080 }, /* TST.L An */ +{ CPUFUNC(op_4a90_0), 0, 19088 }, /* TST.L (An) */ +{ CPUFUNC(op_4a98_0), 0, 19096 }, /* TST.L (An)+ */ +{ CPUFUNC(op_4aa0_0), 0, 19104 }, /* TST.L -(An) */ +{ CPUFUNC(op_4aa8_0), 0, 19112 }, /* TST.L (d16,An) */ +{ CPUFUNC(op_4ab0_0), 0, 19120 }, /* TST.L (d8,An,Xn) */ +{ CPUFUNC(op_4ab8_0), 0, 19128 }, /* TST.L (xxx).W */ +{ CPUFUNC(op_4ab9_0), 0, 19129 }, /* TST.L (xxx).L */ +{ CPUFUNC(op_4aba_0), 0, 19130 }, /* TST.L (d16,PC) */ +{ CPUFUNC(op_4abb_0), 0, 19131 }, /* TST.L (d8,PC,Xn) */ +{ CPUFUNC(op_4abc_0), 0, 19132 }, /* TST.L #.L */ +{ CPUFUNC(op_4ac0_0), 0, 19136 }, /* TAS.B Dn */ +{ CPUFUNC(op_4ad0_0), 0, 19152 }, /* TAS.B (An) */ +{ CPUFUNC(op_4ad8_0), 0, 19160 }, /* TAS.B (An)+ */ +{ CPUFUNC(op_4ae0_0), 0, 19168 }, /* TAS.B -(An) */ +{ CPUFUNC(op_4ae8_0), 0, 19176 }, /* TAS.B (d16,An) */ +{ CPUFUNC(op_4af0_0), 0, 19184 }, /* TAS.B (d8,An,Xn) */ +{ CPUFUNC(op_4af8_0), 0, 19192 }, /* TAS.B (xxx).W */ +{ CPUFUNC(op_4af9_0), 0, 19193 }, /* TAS.B (xxx).L */ +{ CPUFUNC(op_4c00_0), 0, 19456 }, /* MULL.L #.W,Dn */ +{ CPUFUNC(op_4c10_0), 0, 19472 }, /* MULL.L #.W,(An) */ +{ CPUFUNC(op_4c18_0), 0, 19480 }, /* MULL.L #.W,(An)+ */ +{ CPUFUNC(op_4c20_0), 0, 19488 }, /* MULL.L #.W,-(An) */ +{ CPUFUNC(op_4c28_0), 0, 19496 }, /* MULL.L #.W,(d16,An) */ +{ CPUFUNC(op_4c30_0), 0, 19504 }, /* MULL.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_4c38_0), 0, 19512 }, /* MULL.L #.W,(xxx).W */ +{ CPUFUNC(op_4c39_0), 0, 19513 }, /* MULL.L #.W,(xxx).L */ +{ CPUFUNC(op_4c3a_0), 0, 19514 }, /* MULL.L #.W,(d16,PC) */ +{ CPUFUNC(op_4c3b_0), 0, 19515 }, /* MULL.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_4c3c_0), 0, 19516 }, /* MULL.L #.W,#.L */ +{ CPUFUNC(op_4c40_0), 0, 19520 }, /* DIVL.L #.W,Dn */ +{ CPUFUNC(op_4c50_0), 0, 19536 }, /* DIVL.L #.W,(An) */ +{ CPUFUNC(op_4c58_0), 0, 19544 }, /* DIVL.L #.W,(An)+ */ +{ CPUFUNC(op_4c60_0), 0, 19552 }, /* DIVL.L #.W,-(An) */ +{ CPUFUNC(op_4c68_0), 0, 19560 }, /* DIVL.L #.W,(d16,An) */ +{ CPUFUNC(op_4c70_0), 0, 19568 }, /* DIVL.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_4c78_0), 0, 19576 }, /* DIVL.L #.W,(xxx).W */ +{ CPUFUNC(op_4c79_0), 0, 19577 }, /* DIVL.L #.W,(xxx).L */ +{ CPUFUNC(op_4c7a_0), 0, 19578 }, /* DIVL.L #.W,(d16,PC) */ +{ CPUFUNC(op_4c7b_0), 0, 19579 }, /* DIVL.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_4c7c_0), 0, 19580 }, /* DIVL.L #.W,#.L */ +{ CPUFUNC_FF(op_4c90_0), 0, 19600 }, /* MVMEL.W #.W,(An) */ +{ CPUFUNC_FF(op_4c98_0), 0, 19608 }, /* MVMEL.W #.W,(An)+ */ +{ CPUFUNC_FF(op_4ca8_0), 0, 19624 }, /* MVMEL.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_4cb0_0), 0, 19632 }, /* MVMEL.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_4cb8_0), 0, 19640 }, /* MVMEL.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_4cb9_0), 0, 19641 }, /* MVMEL.W #.W,(xxx).L */ +{ CPUFUNC_FF(op_4cba_0), 0, 19642 }, /* MVMEL.W #.W,(d16,PC) */ +{ CPUFUNC_FF(op_4cbb_0), 0, 19643 }, /* MVMEL.W #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_4cd0_0), 0, 19664 }, /* MVMEL.L #.W,(An) */ +{ CPUFUNC_FF(op_4cd8_0), 0, 19672 }, /* MVMEL.L #.W,(An)+ */ +{ CPUFUNC_FF(op_4ce8_0), 0, 19688 }, /* MVMEL.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_4cf0_0), 0, 19696 }, /* MVMEL.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_4cf8_0), 0, 19704 }, /* MVMEL.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_4cf9_0), 0, 19705 }, /* MVMEL.L #.W,(xxx).L */ +{ CPUFUNC_FF(op_4cfa_0), 0, 19706 }, /* MVMEL.L #.W,(d16,PC) */ +{ CPUFUNC_FF(op_4cfb_0), 0, 19707 }, /* MVMEL.L #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_4e40_0), 0, 20032 }, /* TRAP.L # */ +{ CPUFUNC_FF(op_4e50_0), 0, 20048 }, /* LINK.W An,#.W */ +{ CPUFUNC_FF(op_4e58_0), 0, 20056 }, /* UNLK.L An */ +{ CPUFUNC_FF(op_4e60_0), 0, 20064 }, /* MVR2USP.L An */ +{ CPUFUNC_FF(op_4e68_0), 0, 20072 }, /* MVUSP2R.L An */ +{ CPUFUNC_FF(op_4e70_0), 0, 20080 }, /* RESET.L */ +{ CPUFUNC_FF(op_4e71_0), 0, 20081 }, /* NOP.L */ +{ CPUFUNC(op_4e72_0), 0, 20082 }, /* STOP.L #.W */ +{ CPUFUNC(op_4e73_0), 0, 20083 }, /* RTE.L */ +{ CPUFUNC_FF(op_4e74_0), 0, 20084 }, /* RTD.L #.W */ +{ CPUFUNC_FF(op_4e75_0), 0, 20085 }, /* RTS.L */ +{ CPUFUNC_FF(op_4e76_0), 0, 20086 }, /* TRAPV.L */ +{ CPUFUNC(op_4e77_0), 0, 20087 }, /* RTR.L */ +{ CPUFUNC_FF(op_4e7a_0), 0, 20090 }, /* MOVEC2.L #.W */ +{ CPUFUNC_FF(op_4e7b_0), 0, 20091 }, /* MOVE2C.L #.W */ +{ CPUFUNC_FF(op_4e90_0), 0, 20112 }, /* JSR.L (An) */ +{ CPUFUNC_FF(op_4ea8_0), 0, 20136 }, /* JSR.L (d16,An) */ +{ CPUFUNC_FF(op_4eb0_0), 0, 20144 }, /* JSR.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4eb8_0), 0, 20152 }, /* JSR.L (xxx).W */ +{ CPUFUNC_FF(op_4eb9_0), 0, 20153 }, /* JSR.L (xxx).L */ +{ CPUFUNC_FF(op_4eba_0), 0, 20154 }, /* JSR.L (d16,PC) */ +{ CPUFUNC_FF(op_4ebb_0), 0, 20155 }, /* JSR.L (d8,PC,Xn) */ +{ CPUFUNC_FF(op_4ed0_0), 0, 20176 }, /* JMP.L (An) */ +{ CPUFUNC_FF(op_4ee8_0), 0, 20200 }, /* JMP.L (d16,An) */ +{ CPUFUNC_FF(op_4ef0_0), 0, 20208 }, /* JMP.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4ef8_0), 0, 20216 }, /* JMP.L (xxx).W */ +{ CPUFUNC_FF(op_4ef9_0), 0, 20217 }, /* JMP.L (xxx).L */ +{ CPUFUNC_FF(op_4efa_0), 0, 20218 }, /* JMP.L (d16,PC) */ +{ CPUFUNC_FF(op_4efb_0), 0, 20219 }, /* JMP.L (d8,PC,Xn) */ +{ CPUFUNC(op_5000_0), 0, 20480 }, /* ADD.B #,Dn */ +{ CPUFUNC(op_5010_0), 0, 20496 }, /* ADD.B #,(An) */ +{ CPUFUNC(op_5018_0), 0, 20504 }, /* ADD.B #,(An)+ */ +{ CPUFUNC(op_5020_0), 0, 20512 }, /* ADD.B #,-(An) */ +{ CPUFUNC(op_5028_0), 0, 20520 }, /* ADD.B #,(d16,An) */ +{ CPUFUNC(op_5030_0), 0, 20528 }, /* ADD.B #,(d8,An,Xn) */ +{ CPUFUNC(op_5038_0), 0, 20536 }, /* ADD.B #,(xxx).W */ +{ CPUFUNC(op_5039_0), 0, 20537 }, /* ADD.B #,(xxx).L */ +{ CPUFUNC(op_5040_0), 0, 20544 }, /* ADD.W #,Dn */ +{ CPUFUNC_FF(op_5048_0), 0, 20552 }, /* ADDA.W #,An */ +{ CPUFUNC(op_5050_0), 0, 20560 }, /* ADD.W #,(An) */ +{ CPUFUNC(op_5058_0), 0, 20568 }, /* ADD.W #,(An)+ */ +{ CPUFUNC(op_5060_0), 0, 20576 }, /* ADD.W #,-(An) */ +{ CPUFUNC(op_5068_0), 0, 20584 }, /* ADD.W #,(d16,An) */ +{ CPUFUNC(op_5070_0), 0, 20592 }, /* ADD.W #,(d8,An,Xn) */ +{ CPUFUNC(op_5078_0), 0, 20600 }, /* ADD.W #,(xxx).W */ +{ CPUFUNC(op_5079_0), 0, 20601 }, /* ADD.W #,(xxx).L */ +{ CPUFUNC(op_5080_0), 0, 20608 }, /* ADD.L #,Dn */ +{ CPUFUNC_FF(op_5088_0), 0, 20616 }, /* ADDA.L #,An */ +{ CPUFUNC(op_5090_0), 0, 20624 }, /* ADD.L #,(An) */ +{ CPUFUNC(op_5098_0), 0, 20632 }, /* ADD.L #,(An)+ */ +{ CPUFUNC(op_50a0_0), 0, 20640 }, /* ADD.L #,-(An) */ +{ CPUFUNC(op_50a8_0), 0, 20648 }, /* ADD.L #,(d16,An) */ +{ CPUFUNC(op_50b0_0), 0, 20656 }, /* ADD.L #,(d8,An,Xn) */ +{ CPUFUNC(op_50b8_0), 0, 20664 }, /* ADD.L #,(xxx).W */ +{ CPUFUNC(op_50b9_0), 0, 20665 }, /* ADD.L #,(xxx).L */ +{ CPUFUNC_FF(op_50c0_0), 0, 20672 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_50c8_0), 0, 20680 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_50d0_0), 0, 20688 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_50d8_0), 0, 20696 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_50e0_0), 0, 20704 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_50e8_0), 0, 20712 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_50f0_0), 0, 20720 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_50f8_0), 0, 20728 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_50f9_0), 0, 20729 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_50fa_0), 0, 20730 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_50fb_0), 0, 20731 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_50fc_0), 0, 20732 }, /* TRAPcc.L */ +{ CPUFUNC(op_5100_0), 0, 20736 }, /* SUB.B #,Dn */ +{ CPUFUNC(op_5110_0), 0, 20752 }, /* SUB.B #,(An) */ +{ CPUFUNC(op_5118_0), 0, 20760 }, /* SUB.B #,(An)+ */ +{ CPUFUNC(op_5120_0), 0, 20768 }, /* SUB.B #,-(An) */ +{ CPUFUNC(op_5128_0), 0, 20776 }, /* SUB.B #,(d16,An) */ +{ CPUFUNC(op_5130_0), 0, 20784 }, /* SUB.B #,(d8,An,Xn) */ +{ CPUFUNC(op_5138_0), 0, 20792 }, /* SUB.B #,(xxx).W */ +{ CPUFUNC(op_5139_0), 0, 20793 }, /* SUB.B #,(xxx).L */ +{ CPUFUNC(op_5140_0), 0, 20800 }, /* SUB.W #,Dn */ +{ CPUFUNC_FF(op_5148_0), 0, 20808 }, /* SUBA.W #,An */ +{ CPUFUNC(op_5150_0), 0, 20816 }, /* SUB.W #,(An) */ +{ CPUFUNC(op_5158_0), 0, 20824 }, /* SUB.W #,(An)+ */ +{ CPUFUNC(op_5160_0), 0, 20832 }, /* SUB.W #,-(An) */ +{ CPUFUNC(op_5168_0), 0, 20840 }, /* SUB.W #,(d16,An) */ +{ CPUFUNC(op_5170_0), 0, 20848 }, /* SUB.W #,(d8,An,Xn) */ +{ CPUFUNC(op_5178_0), 0, 20856 }, /* SUB.W #,(xxx).W */ +{ CPUFUNC(op_5179_0), 0, 20857 }, /* SUB.W #,(xxx).L */ +{ CPUFUNC(op_5180_0), 0, 20864 }, /* SUB.L #,Dn */ +{ CPUFUNC_FF(op_5188_0), 0, 20872 }, /* SUBA.L #,An */ +{ CPUFUNC(op_5190_0), 0, 20880 }, /* SUB.L #,(An) */ +{ CPUFUNC(op_5198_0), 0, 20888 }, /* SUB.L #,(An)+ */ +{ CPUFUNC(op_51a0_0), 0, 20896 }, /* SUB.L #,-(An) */ +{ CPUFUNC(op_51a8_0), 0, 20904 }, /* SUB.L #,(d16,An) */ +{ CPUFUNC(op_51b0_0), 0, 20912 }, /* SUB.L #,(d8,An,Xn) */ +{ CPUFUNC(op_51b8_0), 0, 20920 }, /* SUB.L #,(xxx).W */ +{ CPUFUNC(op_51b9_0), 0, 20921 }, /* SUB.L #,(xxx).L */ +{ CPUFUNC_FF(op_51c0_0), 0, 20928 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_51c8_0), 0, 20936 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_51d0_0), 0, 20944 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_51d8_0), 0, 20952 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_51e0_0), 0, 20960 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_51e8_0), 0, 20968 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_51f0_0), 0, 20976 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_51f8_0), 0, 20984 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_51f9_0), 0, 20985 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_51fa_0), 0, 20986 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_51fb_0), 0, 20987 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_51fc_0), 0, 20988 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_52c0_0), 0, 21184 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_52c8_0), 0, 21192 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_52d0_0), 0, 21200 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_52d8_0), 0, 21208 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_52e0_0), 0, 21216 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_52e8_0), 0, 21224 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_52f0_0), 0, 21232 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_52f8_0), 0, 21240 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_52f9_0), 0, 21241 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_52fa_0), 0, 21242 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_52fb_0), 0, 21243 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_52fc_0), 0, 21244 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_53c0_0), 0, 21440 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_53c8_0), 0, 21448 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_53d0_0), 0, 21456 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_53d8_0), 0, 21464 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_53e0_0), 0, 21472 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_53e8_0), 0, 21480 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_53f0_0), 0, 21488 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_53f8_0), 0, 21496 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_53f9_0), 0, 21497 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_53fa_0), 0, 21498 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_53fb_0), 0, 21499 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_53fc_0), 0, 21500 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_54c0_0), 0, 21696 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_54c8_0), 0, 21704 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_54d0_0), 0, 21712 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_54d8_0), 0, 21720 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_54e0_0), 0, 21728 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_54e8_0), 0, 21736 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_54f0_0), 0, 21744 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_54f8_0), 0, 21752 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_54f9_0), 0, 21753 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_54fa_0), 0, 21754 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_54fb_0), 0, 21755 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_54fc_0), 0, 21756 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_55c0_0), 0, 21952 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_55c8_0), 0, 21960 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_55d0_0), 0, 21968 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_55d8_0), 0, 21976 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_55e0_0), 0, 21984 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_55e8_0), 0, 21992 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_55f0_0), 0, 22000 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_55f8_0), 0, 22008 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_55f9_0), 0, 22009 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_55fa_0), 0, 22010 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_55fb_0), 0, 22011 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_55fc_0), 0, 22012 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_56c0_0), 0, 22208 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_56c8_0), 0, 22216 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_56d0_0), 0, 22224 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_56d8_0), 0, 22232 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_56e0_0), 0, 22240 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_56e8_0), 0, 22248 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_56f0_0), 0, 22256 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_56f8_0), 0, 22264 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_56f9_0), 0, 22265 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_56fa_0), 0, 22266 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_56fb_0), 0, 22267 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_56fc_0), 0, 22268 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_57c0_0), 0, 22464 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_57c8_0), 0, 22472 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_57d0_0), 0, 22480 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_57d8_0), 0, 22488 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_57e0_0), 0, 22496 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_57e8_0), 0, 22504 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_57f0_0), 0, 22512 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_57f8_0), 0, 22520 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_57f9_0), 0, 22521 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_57fa_0), 0, 22522 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_57fb_0), 0, 22523 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_57fc_0), 0, 22524 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_58c0_0), 0, 22720 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_58c8_0), 0, 22728 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_58d0_0), 0, 22736 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_58d8_0), 0, 22744 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_58e0_0), 0, 22752 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_58e8_0), 0, 22760 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_58f0_0), 0, 22768 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_58f8_0), 0, 22776 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_58f9_0), 0, 22777 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_58fa_0), 0, 22778 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_58fb_0), 0, 22779 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_58fc_0), 0, 22780 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_59c0_0), 0, 22976 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_59c8_0), 0, 22984 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_59d0_0), 0, 22992 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_59d8_0), 0, 23000 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_59e0_0), 0, 23008 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_59e8_0), 0, 23016 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_59f0_0), 0, 23024 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_59f8_0), 0, 23032 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_59f9_0), 0, 23033 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_59fa_0), 0, 23034 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_59fb_0), 0, 23035 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_59fc_0), 0, 23036 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5ac0_0), 0, 23232 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5ac8_0), 0, 23240 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5ad0_0), 0, 23248 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5ad8_0), 0, 23256 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ae0_0), 0, 23264 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ae8_0), 0, 23272 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5af0_0), 0, 23280 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5af8_0), 0, 23288 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5af9_0), 0, 23289 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5afa_0), 0, 23290 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5afb_0), 0, 23291 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5afc_0), 0, 23292 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5bc0_0), 0, 23488 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5bc8_0), 0, 23496 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5bd0_0), 0, 23504 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5bd8_0), 0, 23512 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5be0_0), 0, 23520 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5be8_0), 0, 23528 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5bf0_0), 0, 23536 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5bf8_0), 0, 23544 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5bf9_0), 0, 23545 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5bfa_0), 0, 23546 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5bfb_0), 0, 23547 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5bfc_0), 0, 23548 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5cc0_0), 0, 23744 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5cc8_0), 0, 23752 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5cd0_0), 0, 23760 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5cd8_0), 0, 23768 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ce0_0), 0, 23776 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ce8_0), 0, 23784 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5cf0_0), 0, 23792 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5cf8_0), 0, 23800 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5cf9_0), 0, 23801 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5cfa_0), 0, 23802 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5cfb_0), 0, 23803 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5cfc_0), 0, 23804 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5dc0_0), 0, 24000 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5dc8_0), 0, 24008 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5dd0_0), 0, 24016 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5dd8_0), 0, 24024 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5de0_0), 0, 24032 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5de8_0), 0, 24040 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5df0_0), 0, 24048 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5df8_0), 0, 24056 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5df9_0), 0, 24057 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5dfa_0), 0, 24058 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5dfb_0), 0, 24059 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5dfc_0), 0, 24060 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5ec0_0), 0, 24256 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5ec8_0), 0, 24264 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5ed0_0), 0, 24272 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5ed8_0), 0, 24280 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ee0_0), 0, 24288 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ee8_0), 0, 24296 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5ef0_0), 0, 24304 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5ef8_0), 0, 24312 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5ef9_0), 0, 24313 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5efa_0), 0, 24314 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5efb_0), 0, 24315 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5efc_0), 0, 24316 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5fc0_0), 0, 24512 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5fc8_0), 0, 24520 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5fd0_0), 0, 24528 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5fd8_0), 0, 24536 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5fe0_0), 0, 24544 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5fe8_0), 0, 24552 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5ff0_0), 0, 24560 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5ff8_0), 0, 24568 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5ff9_0), 0, 24569 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5ffa_0), 0, 24570 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5ffb_0), 0, 24571 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5ffc_0), 0, 24572 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_6000_0), 0, 24576 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6001_0), 0, 24577 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_60ff_0), 0, 24831 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6100_0), 0, 24832 }, /* BSR.W #.W */ +{ CPUFUNC_FF(op_6101_0), 0, 24833 }, /* BSR.B # */ +{ CPUFUNC_FF(op_61ff_0), 0, 25087 }, /* BSR.L #.L */ +{ CPUFUNC_FF(op_6200_0), 0, 25088 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6201_0), 0, 25089 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_62ff_0), 0, 25343 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6300_0), 0, 25344 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6301_0), 0, 25345 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_63ff_0), 0, 25599 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6400_0), 0, 25600 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6401_0), 0, 25601 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_64ff_0), 0, 25855 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6500_0), 0, 25856 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6501_0), 0, 25857 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_65ff_0), 0, 26111 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6600_0), 0, 26112 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6601_0), 0, 26113 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_66ff_0), 0, 26367 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6700_0), 0, 26368 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6701_0), 0, 26369 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_67ff_0), 0, 26623 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6800_0), 0, 26624 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6801_0), 0, 26625 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_68ff_0), 0, 26879 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6900_0), 0, 26880 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6901_0), 0, 26881 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_69ff_0), 0, 27135 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6a00_0), 0, 27136 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6a01_0), 0, 27137 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6aff_0), 0, 27391 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6b00_0), 0, 27392 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6b01_0), 0, 27393 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6bff_0), 0, 27647 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6c00_0), 0, 27648 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6c01_0), 0, 27649 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6cff_0), 0, 27903 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6d00_0), 0, 27904 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6d01_0), 0, 27905 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6dff_0), 0, 28159 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6e00_0), 0, 28160 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6e01_0), 0, 28161 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6eff_0), 0, 28415 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6f00_0), 0, 28416 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6f01_0), 0, 28417 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6fff_0), 0, 28671 }, /* Bcc.L #.L */ +{ CPUFUNC(op_7000_0), 0, 28672 }, /* MOVE.L #,Dn */ +{ CPUFUNC_FF(op_7100_0), 0, 28928 }, /* EMULOP_RETURN.L */ +{ CPUFUNC_FF(op_7101_0), 0, 28929 }, /* EMULOP.L # */ +{ CPUFUNC(op_8000_0), 0, 32768 }, /* OR.B Dn,Dn */ +{ CPUFUNC(op_8010_0), 0, 32784 }, /* OR.B (An),Dn */ +{ CPUFUNC(op_8018_0), 0, 32792 }, /* OR.B (An)+,Dn */ +{ CPUFUNC(op_8020_0), 0, 32800 }, /* OR.B -(An),Dn */ +{ CPUFUNC(op_8028_0), 0, 32808 }, /* OR.B (d16,An),Dn */ +{ CPUFUNC(op_8030_0), 0, 32816 }, /* OR.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_8038_0), 0, 32824 }, /* OR.B (xxx).W,Dn */ +{ CPUFUNC(op_8039_0), 0, 32825 }, /* OR.B (xxx).L,Dn */ +{ CPUFUNC(op_803a_0), 0, 32826 }, /* OR.B (d16,PC),Dn */ +{ CPUFUNC(op_803b_0), 0, 32827 }, /* OR.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_803c_0), 0, 32828 }, /* OR.B #.B,Dn */ +{ CPUFUNC(op_8040_0), 0, 32832 }, /* OR.W Dn,Dn */ +{ CPUFUNC(op_8050_0), 0, 32848 }, /* OR.W (An),Dn */ +{ CPUFUNC(op_8058_0), 0, 32856 }, /* OR.W (An)+,Dn */ +{ CPUFUNC(op_8060_0), 0, 32864 }, /* OR.W -(An),Dn */ +{ CPUFUNC(op_8068_0), 0, 32872 }, /* OR.W (d16,An),Dn */ +{ CPUFUNC(op_8070_0), 0, 32880 }, /* OR.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_8078_0), 0, 32888 }, /* OR.W (xxx).W,Dn */ +{ CPUFUNC(op_8079_0), 0, 32889 }, /* OR.W (xxx).L,Dn */ +{ CPUFUNC(op_807a_0), 0, 32890 }, /* OR.W (d16,PC),Dn */ +{ CPUFUNC(op_807b_0), 0, 32891 }, /* OR.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_807c_0), 0, 32892 }, /* OR.W #.W,Dn */ +{ CPUFUNC(op_8080_0), 0, 32896 }, /* OR.L Dn,Dn */ +{ CPUFUNC(op_8090_0), 0, 32912 }, /* OR.L (An),Dn */ +{ CPUFUNC(op_8098_0), 0, 32920 }, /* OR.L (An)+,Dn */ +{ CPUFUNC(op_80a0_0), 0, 32928 }, /* OR.L -(An),Dn */ +{ CPUFUNC(op_80a8_0), 0, 32936 }, /* OR.L (d16,An),Dn */ +{ CPUFUNC(op_80b0_0), 0, 32944 }, /* OR.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_80b8_0), 0, 32952 }, /* OR.L (xxx).W,Dn */ +{ CPUFUNC(op_80b9_0), 0, 32953 }, /* OR.L (xxx).L,Dn */ +{ CPUFUNC(op_80ba_0), 0, 32954 }, /* OR.L (d16,PC),Dn */ +{ CPUFUNC(op_80bb_0), 0, 32955 }, /* OR.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_80bc_0), 0, 32956 }, /* OR.L #.L,Dn */ +{ CPUFUNC(op_80c0_0), 0, 32960 }, /* DIVU.W Dn,Dn */ +{ CPUFUNC(op_80d0_0), 0, 32976 }, /* DIVU.W (An),Dn */ +{ CPUFUNC(op_80d8_0), 0, 32984 }, /* DIVU.W (An)+,Dn */ +{ CPUFUNC(op_80e0_0), 0, 32992 }, /* DIVU.W -(An),Dn */ +{ CPUFUNC(op_80e8_0), 0, 33000 }, /* DIVU.W (d16,An),Dn */ +{ CPUFUNC(op_80f0_0), 0, 33008 }, /* DIVU.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_80f8_0), 0, 33016 }, /* DIVU.W (xxx).W,Dn */ +{ CPUFUNC(op_80f9_0), 0, 33017 }, /* DIVU.W (xxx).L,Dn */ +{ CPUFUNC(op_80fa_0), 0, 33018 }, /* DIVU.W (d16,PC),Dn */ +{ CPUFUNC(op_80fb_0), 0, 33019 }, /* DIVU.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_80fc_0), 0, 33020 }, /* DIVU.W #.W,Dn */ +{ CPUFUNC(op_8100_1), 0, 33024 }, /* SBCD.B Dn,Dn */ +{ CPUFUNC(op_8108_1), 0, 33032 }, /* SBCD.B -(An),-(An) */ +{ CPUFUNC(op_8110_0), 0, 33040 }, /* OR.B Dn,(An) */ +{ CPUFUNC(op_8118_0), 0, 33048 }, /* OR.B Dn,(An)+ */ +{ CPUFUNC(op_8120_0), 0, 33056 }, /* OR.B Dn,-(An) */ +{ CPUFUNC(op_8128_0), 0, 33064 }, /* OR.B Dn,(d16,An) */ +{ CPUFUNC(op_8130_0), 0, 33072 }, /* OR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_8138_0), 0, 33080 }, /* OR.B Dn,(xxx).W */ +{ CPUFUNC(op_8139_0), 0, 33081 }, /* OR.B Dn,(xxx).L */ +{ CPUFUNC_FF(op_8140_0), 0, 33088 }, /* PACK.L Dn,Dn */ +{ CPUFUNC_FF(op_8148_0), 0, 33096 }, /* PACK.L -(An),-(An) */ +{ CPUFUNC(op_8150_0), 0, 33104 }, /* OR.W Dn,(An) */ +{ CPUFUNC(op_8158_0), 0, 33112 }, /* OR.W Dn,(An)+ */ +{ CPUFUNC(op_8160_0), 0, 33120 }, /* OR.W Dn,-(An) */ +{ CPUFUNC(op_8168_0), 0, 33128 }, /* OR.W Dn,(d16,An) */ +{ CPUFUNC(op_8170_0), 0, 33136 }, /* OR.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_8178_0), 0, 33144 }, /* OR.W Dn,(xxx).W */ +{ CPUFUNC(op_8179_0), 0, 33145 }, /* OR.W Dn,(xxx).L */ +{ CPUFUNC_FF(op_8180_0), 0, 33152 }, /* UNPK.L Dn,Dn */ +{ CPUFUNC_FF(op_8188_0), 0, 33160 }, /* UNPK.L -(An),-(An) */ +{ CPUFUNC(op_8190_0), 0, 33168 }, /* OR.L Dn,(An) */ +{ CPUFUNC(op_8198_0), 0, 33176 }, /* OR.L Dn,(An)+ */ +{ CPUFUNC(op_81a0_0), 0, 33184 }, /* OR.L Dn,-(An) */ +{ CPUFUNC(op_81a8_0), 0, 33192 }, /* OR.L Dn,(d16,An) */ +{ CPUFUNC(op_81b0_0), 0, 33200 }, /* OR.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_81b8_0), 0, 33208 }, /* OR.L Dn,(xxx).W */ +{ CPUFUNC(op_81b9_0), 0, 33209 }, /* OR.L Dn,(xxx).L */ +{ CPUFUNC(op_81c0_0), 0, 33216 }, /* DIVS.W Dn,Dn */ +{ CPUFUNC(op_81d0_0), 0, 33232 }, /* DIVS.W (An),Dn */ +{ CPUFUNC(op_81d8_0), 0, 33240 }, /* DIVS.W (An)+,Dn */ +{ CPUFUNC(op_81e0_0), 0, 33248 }, /* DIVS.W -(An),Dn */ +{ CPUFUNC(op_81e8_0), 0, 33256 }, /* DIVS.W (d16,An),Dn */ +{ CPUFUNC(op_81f0_0), 0, 33264 }, /* DIVS.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_81f8_0), 0, 33272 }, /* DIVS.W (xxx).W,Dn */ +{ CPUFUNC(op_81f9_0), 0, 33273 }, /* DIVS.W (xxx).L,Dn */ +{ CPUFUNC(op_81fa_0), 0, 33274 }, /* DIVS.W (d16,PC),Dn */ +{ CPUFUNC(op_81fb_0), 0, 33275 }, /* DIVS.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_81fc_0), 0, 33276 }, /* DIVS.W #.W,Dn */ +{ CPUFUNC(op_9000_0), 0, 36864 }, /* SUB.B Dn,Dn */ +{ CPUFUNC(op_9010_0), 0, 36880 }, /* SUB.B (An),Dn */ +{ CPUFUNC(op_9018_0), 0, 36888 }, /* SUB.B (An)+,Dn */ +{ CPUFUNC(op_9020_0), 0, 36896 }, /* SUB.B -(An),Dn */ +{ CPUFUNC(op_9028_0), 0, 36904 }, /* SUB.B (d16,An),Dn */ +{ CPUFUNC(op_9030_0), 0, 36912 }, /* SUB.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_9038_0), 0, 36920 }, /* SUB.B (xxx).W,Dn */ +{ CPUFUNC(op_9039_0), 0, 36921 }, /* SUB.B (xxx).L,Dn */ +{ CPUFUNC(op_903a_0), 0, 36922 }, /* SUB.B (d16,PC),Dn */ +{ CPUFUNC(op_903b_0), 0, 36923 }, /* SUB.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_903c_0), 0, 36924 }, /* SUB.B #.B,Dn */ +{ CPUFUNC(op_9040_0), 0, 36928 }, /* SUB.W Dn,Dn */ +{ CPUFUNC(op_9048_0), 0, 36936 }, /* SUB.W An,Dn */ +{ CPUFUNC(op_9050_0), 0, 36944 }, /* SUB.W (An),Dn */ +{ CPUFUNC(op_9058_0), 0, 36952 }, /* SUB.W (An)+,Dn */ +{ CPUFUNC(op_9060_0), 0, 36960 }, /* SUB.W -(An),Dn */ +{ CPUFUNC(op_9068_0), 0, 36968 }, /* SUB.W (d16,An),Dn */ +{ CPUFUNC(op_9070_0), 0, 36976 }, /* SUB.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_9078_0), 0, 36984 }, /* SUB.W (xxx).W,Dn */ +{ CPUFUNC(op_9079_0), 0, 36985 }, /* SUB.W (xxx).L,Dn */ +{ CPUFUNC(op_907a_0), 0, 36986 }, /* SUB.W (d16,PC),Dn */ +{ CPUFUNC(op_907b_0), 0, 36987 }, /* SUB.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_907c_0), 0, 36988 }, /* SUB.W #.W,Dn */ +{ CPUFUNC(op_9080_0), 0, 36992 }, /* SUB.L Dn,Dn */ +{ CPUFUNC(op_9088_0), 0, 37000 }, /* SUB.L An,Dn */ +{ CPUFUNC(op_9090_0), 0, 37008 }, /* SUB.L (An),Dn */ +{ CPUFUNC(op_9098_0), 0, 37016 }, /* SUB.L (An)+,Dn */ +{ CPUFUNC(op_90a0_0), 0, 37024 }, /* SUB.L -(An),Dn */ +{ CPUFUNC(op_90a8_0), 0, 37032 }, /* SUB.L (d16,An),Dn */ +{ CPUFUNC(op_90b0_0), 0, 37040 }, /* SUB.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_90b8_0), 0, 37048 }, /* SUB.L (xxx).W,Dn */ +{ CPUFUNC(op_90b9_0), 0, 37049 }, /* SUB.L (xxx).L,Dn */ +{ CPUFUNC(op_90ba_0), 0, 37050 }, /* SUB.L (d16,PC),Dn */ +{ CPUFUNC(op_90bb_0), 0, 37051 }, /* SUB.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_90bc_0), 0, 37052 }, /* SUB.L #.L,Dn */ +{ CPUFUNC_FF(op_90c0_0), 0, 37056 }, /* SUBA.W Dn,An */ +{ CPUFUNC_FF(op_90c8_0), 0, 37064 }, /* SUBA.W An,An */ +{ CPUFUNC_FF(op_90d0_0), 0, 37072 }, /* SUBA.W (An),An */ +{ CPUFUNC_FF(op_90d8_0), 0, 37080 }, /* SUBA.W (An)+,An */ +{ CPUFUNC_FF(op_90e0_0), 0, 37088 }, /* SUBA.W -(An),An */ +{ CPUFUNC_FF(op_90e8_0), 0, 37096 }, /* SUBA.W (d16,An),An */ +{ CPUFUNC_FF(op_90f0_0), 0, 37104 }, /* SUBA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_90f8_0), 0, 37112 }, /* SUBA.W (xxx).W,An */ +{ CPUFUNC_FF(op_90f9_0), 0, 37113 }, /* SUBA.W (xxx).L,An */ +{ CPUFUNC_FF(op_90fa_0), 0, 37114 }, /* SUBA.W (d16,PC),An */ +{ CPUFUNC_FF(op_90fb_0), 0, 37115 }, /* SUBA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_90fc_0), 0, 37116 }, /* SUBA.W #.W,An */ +{ CPUFUNC(op_9100_0), 0, 37120 }, /* SUBX.B Dn,Dn */ +{ CPUFUNC(op_9108_0), 0, 37128 }, /* SUBX.B -(An),-(An) */ +{ CPUFUNC(op_9110_0), 0, 37136 }, /* SUB.B Dn,(An) */ +{ CPUFUNC(op_9118_0), 0, 37144 }, /* SUB.B Dn,(An)+ */ +{ CPUFUNC(op_9120_0), 0, 37152 }, /* SUB.B Dn,-(An) */ +{ CPUFUNC(op_9128_0), 0, 37160 }, /* SUB.B Dn,(d16,An) */ +{ CPUFUNC(op_9130_0), 0, 37168 }, /* SUB.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_9138_0), 0, 37176 }, /* SUB.B Dn,(xxx).W */ +{ CPUFUNC(op_9139_0), 0, 37177 }, /* SUB.B Dn,(xxx).L */ +{ CPUFUNC(op_9140_0), 0, 37184 }, /* SUBX.W Dn,Dn */ +{ CPUFUNC(op_9148_0), 0, 37192 }, /* SUBX.W -(An),-(An) */ +{ CPUFUNC(op_9150_0), 0, 37200 }, /* SUB.W Dn,(An) */ +{ CPUFUNC(op_9158_0), 0, 37208 }, /* SUB.W Dn,(An)+ */ +{ CPUFUNC(op_9160_0), 0, 37216 }, /* SUB.W Dn,-(An) */ +{ CPUFUNC(op_9168_0), 0, 37224 }, /* SUB.W Dn,(d16,An) */ +{ CPUFUNC(op_9170_0), 0, 37232 }, /* SUB.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_9178_0), 0, 37240 }, /* SUB.W Dn,(xxx).W */ +{ CPUFUNC(op_9179_0), 0, 37241 }, /* SUB.W Dn,(xxx).L */ +{ CPUFUNC(op_9180_0), 0, 37248 }, /* SUBX.L Dn,Dn */ +{ CPUFUNC(op_9188_0), 0, 37256 }, /* SUBX.L -(An),-(An) */ +{ CPUFUNC(op_9190_0), 0, 37264 }, /* SUB.L Dn,(An) */ +{ CPUFUNC(op_9198_0), 0, 37272 }, /* SUB.L Dn,(An)+ */ +{ CPUFUNC(op_91a0_0), 0, 37280 }, /* SUB.L Dn,-(An) */ +{ CPUFUNC(op_91a8_0), 0, 37288 }, /* SUB.L Dn,(d16,An) */ +{ CPUFUNC(op_91b0_0), 0, 37296 }, /* SUB.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_91b8_0), 0, 37304 }, /* SUB.L Dn,(xxx).W */ +{ CPUFUNC(op_91b9_0), 0, 37305 }, /* SUB.L Dn,(xxx).L */ +{ CPUFUNC_FF(op_91c0_0), 0, 37312 }, /* SUBA.L Dn,An */ +{ CPUFUNC_FF(op_91c8_0), 0, 37320 }, /* SUBA.L An,An */ +{ CPUFUNC_FF(op_91d0_0), 0, 37328 }, /* SUBA.L (An),An */ +{ CPUFUNC_FF(op_91d8_0), 0, 37336 }, /* SUBA.L (An)+,An */ +{ CPUFUNC_FF(op_91e0_0), 0, 37344 }, /* SUBA.L -(An),An */ +{ CPUFUNC_FF(op_91e8_0), 0, 37352 }, /* SUBA.L (d16,An),An */ +{ CPUFUNC_FF(op_91f0_0), 0, 37360 }, /* SUBA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_91f8_0), 0, 37368 }, /* SUBA.L (xxx).W,An */ +{ CPUFUNC_FF(op_91f9_0), 0, 37369 }, /* SUBA.L (xxx).L,An */ +{ CPUFUNC_FF(op_91fa_0), 0, 37370 }, /* SUBA.L (d16,PC),An */ +{ CPUFUNC_FF(op_91fb_0), 0, 37371 }, /* SUBA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_91fc_0), 0, 37372 }, /* SUBA.L #.L,An */ +{ CPUFUNC(op_b000_0), 0, 45056 }, /* CMP.B Dn,Dn */ +{ CPUFUNC(op_b010_0), 0, 45072 }, /* CMP.B (An),Dn */ +{ CPUFUNC(op_b018_0), 0, 45080 }, /* CMP.B (An)+,Dn */ +{ CPUFUNC(op_b020_0), 0, 45088 }, /* CMP.B -(An),Dn */ +{ CPUFUNC(op_b028_0), 0, 45096 }, /* CMP.B (d16,An),Dn */ +{ CPUFUNC(op_b030_0), 0, 45104 }, /* CMP.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_b038_0), 0, 45112 }, /* CMP.B (xxx).W,Dn */ +{ CPUFUNC(op_b039_0), 0, 45113 }, /* CMP.B (xxx).L,Dn */ +{ CPUFUNC(op_b03a_0), 0, 45114 }, /* CMP.B (d16,PC),Dn */ +{ CPUFUNC(op_b03b_0), 0, 45115 }, /* CMP.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b03c_0), 0, 45116 }, /* CMP.B #.B,Dn */ +{ CPUFUNC(op_b040_0), 0, 45120 }, /* CMP.W Dn,Dn */ +{ CPUFUNC(op_b048_0), 0, 45128 }, /* CMP.W An,Dn */ +{ CPUFUNC(op_b050_0), 0, 45136 }, /* CMP.W (An),Dn */ +{ CPUFUNC(op_b058_0), 0, 45144 }, /* CMP.W (An)+,Dn */ +{ CPUFUNC(op_b060_0), 0, 45152 }, /* CMP.W -(An),Dn */ +{ CPUFUNC(op_b068_0), 0, 45160 }, /* CMP.W (d16,An),Dn */ +{ CPUFUNC(op_b070_0), 0, 45168 }, /* CMP.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_b078_0), 0, 45176 }, /* CMP.W (xxx).W,Dn */ +{ CPUFUNC(op_b079_0), 0, 45177 }, /* CMP.W (xxx).L,Dn */ +{ CPUFUNC(op_b07a_0), 0, 45178 }, /* CMP.W (d16,PC),Dn */ +{ CPUFUNC(op_b07b_0), 0, 45179 }, /* CMP.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b07c_0), 0, 45180 }, /* CMP.W #.W,Dn */ +{ CPUFUNC(op_b080_0), 0, 45184 }, /* CMP.L Dn,Dn */ +{ CPUFUNC(op_b088_0), 0, 45192 }, /* CMP.L An,Dn */ +{ CPUFUNC(op_b090_0), 0, 45200 }, /* CMP.L (An),Dn */ +{ CPUFUNC(op_b098_0), 0, 45208 }, /* CMP.L (An)+,Dn */ +{ CPUFUNC(op_b0a0_0), 0, 45216 }, /* CMP.L -(An),Dn */ +{ CPUFUNC(op_b0a8_0), 0, 45224 }, /* CMP.L (d16,An),Dn */ +{ CPUFUNC(op_b0b0_0), 0, 45232 }, /* CMP.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_b0b8_0), 0, 45240 }, /* CMP.L (xxx).W,Dn */ +{ CPUFUNC(op_b0b9_0), 0, 45241 }, /* CMP.L (xxx).L,Dn */ +{ CPUFUNC(op_b0ba_0), 0, 45242 }, /* CMP.L (d16,PC),Dn */ +{ CPUFUNC(op_b0bb_0), 0, 45243 }, /* CMP.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b0bc_0), 0, 45244 }, /* CMP.L #.L,Dn */ +{ CPUFUNC(op_b0c0_0), 0, 45248 }, /* CMPA.W Dn,An */ +{ CPUFUNC(op_b0c8_0), 0, 45256 }, /* CMPA.W An,An */ +{ CPUFUNC(op_b0d0_0), 0, 45264 }, /* CMPA.W (An),An */ +{ CPUFUNC(op_b0d8_0), 0, 45272 }, /* CMPA.W (An)+,An */ +{ CPUFUNC(op_b0e0_0), 0, 45280 }, /* CMPA.W -(An),An */ +{ CPUFUNC(op_b0e8_0), 0, 45288 }, /* CMPA.W (d16,An),An */ +{ CPUFUNC(op_b0f0_0), 0, 45296 }, /* CMPA.W (d8,An,Xn),An */ +{ CPUFUNC(op_b0f8_0), 0, 45304 }, /* CMPA.W (xxx).W,An */ +{ CPUFUNC(op_b0f9_0), 0, 45305 }, /* CMPA.W (xxx).L,An */ +{ CPUFUNC(op_b0fa_0), 0, 45306 }, /* CMPA.W (d16,PC),An */ +{ CPUFUNC(op_b0fb_0), 0, 45307 }, /* CMPA.W (d8,PC,Xn),An */ +{ CPUFUNC(op_b0fc_0), 0, 45308 }, /* CMPA.W #.W,An */ +{ CPUFUNC(op_b100_0), 0, 45312 }, /* EOR.B Dn,Dn */ +{ CPUFUNC(op_b108_0), 0, 45320 }, /* CMPM.B (An)+,(An)+ */ +{ CPUFUNC(op_b110_0), 0, 45328 }, /* EOR.B Dn,(An) */ +{ CPUFUNC(op_b118_0), 0, 45336 }, /* EOR.B Dn,(An)+ */ +{ CPUFUNC(op_b120_0), 0, 45344 }, /* EOR.B Dn,-(An) */ +{ CPUFUNC(op_b128_0), 0, 45352 }, /* EOR.B Dn,(d16,An) */ +{ CPUFUNC(op_b130_0), 0, 45360 }, /* EOR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b138_0), 0, 45368 }, /* EOR.B Dn,(xxx).W */ +{ CPUFUNC(op_b139_0), 0, 45369 }, /* EOR.B Dn,(xxx).L */ +{ CPUFUNC(op_b140_0), 0, 45376 }, /* EOR.W Dn,Dn */ +{ CPUFUNC(op_b148_0), 0, 45384 }, /* CMPM.W (An)+,(An)+ */ +{ CPUFUNC(op_b150_0), 0, 45392 }, /* EOR.W Dn,(An) */ +{ CPUFUNC(op_b158_0), 0, 45400 }, /* EOR.W Dn,(An)+ */ +{ CPUFUNC(op_b160_0), 0, 45408 }, /* EOR.W Dn,-(An) */ +{ CPUFUNC(op_b168_0), 0, 45416 }, /* EOR.W Dn,(d16,An) */ +{ CPUFUNC(op_b170_0), 0, 45424 }, /* EOR.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b178_0), 0, 45432 }, /* EOR.W Dn,(xxx).W */ +{ CPUFUNC(op_b179_0), 0, 45433 }, /* EOR.W Dn,(xxx).L */ +{ CPUFUNC(op_b180_0), 0, 45440 }, /* EOR.L Dn,Dn */ +{ CPUFUNC(op_b188_0), 0, 45448 }, /* CMPM.L (An)+,(An)+ */ +{ CPUFUNC(op_b190_0), 0, 45456 }, /* EOR.L Dn,(An) */ +{ CPUFUNC(op_b198_0), 0, 45464 }, /* EOR.L Dn,(An)+ */ +{ CPUFUNC(op_b1a0_0), 0, 45472 }, /* EOR.L Dn,-(An) */ +{ CPUFUNC(op_b1a8_0), 0, 45480 }, /* EOR.L Dn,(d16,An) */ +{ CPUFUNC(op_b1b0_0), 0, 45488 }, /* EOR.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b1b8_0), 0, 45496 }, /* EOR.L Dn,(xxx).W */ +{ CPUFUNC(op_b1b9_0), 0, 45497 }, /* EOR.L Dn,(xxx).L */ +{ CPUFUNC(op_b1c0_0), 0, 45504 }, /* CMPA.L Dn,An */ +{ CPUFUNC(op_b1c8_0), 0, 45512 }, /* CMPA.L An,An */ +{ CPUFUNC(op_b1d0_0), 0, 45520 }, /* CMPA.L (An),An */ +{ CPUFUNC(op_b1d8_0), 0, 45528 }, /* CMPA.L (An)+,An */ +{ CPUFUNC(op_b1e0_0), 0, 45536 }, /* CMPA.L -(An),An */ +{ CPUFUNC(op_b1e8_0), 0, 45544 }, /* CMPA.L (d16,An),An */ +{ CPUFUNC(op_b1f0_0), 0, 45552 }, /* CMPA.L (d8,An,Xn),An */ +{ CPUFUNC(op_b1f8_0), 0, 45560 }, /* CMPA.L (xxx).W,An */ +{ CPUFUNC(op_b1f9_0), 0, 45561 }, /* CMPA.L (xxx).L,An */ +{ CPUFUNC(op_b1fa_0), 0, 45562 }, /* CMPA.L (d16,PC),An */ +{ CPUFUNC(op_b1fb_0), 0, 45563 }, /* CMPA.L (d8,PC,Xn),An */ +{ CPUFUNC(op_b1fc_0), 0, 45564 }, /* CMPA.L #.L,An */ +{ CPUFUNC(op_c000_0), 0, 49152 }, /* AND.B Dn,Dn */ +{ CPUFUNC(op_c010_0), 0, 49168 }, /* AND.B (An),Dn */ +{ CPUFUNC(op_c018_0), 0, 49176 }, /* AND.B (An)+,Dn */ +{ CPUFUNC(op_c020_0), 0, 49184 }, /* AND.B -(An),Dn */ +{ CPUFUNC(op_c028_0), 0, 49192 }, /* AND.B (d16,An),Dn */ +{ CPUFUNC(op_c030_0), 0, 49200 }, /* AND.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_c038_0), 0, 49208 }, /* AND.B (xxx).W,Dn */ +{ CPUFUNC(op_c039_0), 0, 49209 }, /* AND.B (xxx).L,Dn */ +{ CPUFUNC(op_c03a_0), 0, 49210 }, /* AND.B (d16,PC),Dn */ +{ CPUFUNC(op_c03b_0), 0, 49211 }, /* AND.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c03c_0), 0, 49212 }, /* AND.B #.B,Dn */ +{ CPUFUNC(op_c040_0), 0, 49216 }, /* AND.W Dn,Dn */ +{ CPUFUNC(op_c050_0), 0, 49232 }, /* AND.W (An),Dn */ +{ CPUFUNC(op_c058_0), 0, 49240 }, /* AND.W (An)+,Dn */ +{ CPUFUNC(op_c060_0), 0, 49248 }, /* AND.W -(An),Dn */ +{ CPUFUNC(op_c068_0), 0, 49256 }, /* AND.W (d16,An),Dn */ +{ CPUFUNC(op_c070_0), 0, 49264 }, /* AND.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c078_0), 0, 49272 }, /* AND.W (xxx).W,Dn */ +{ CPUFUNC(op_c079_0), 0, 49273 }, /* AND.W (xxx).L,Dn */ +{ CPUFUNC(op_c07a_0), 0, 49274 }, /* AND.W (d16,PC),Dn */ +{ CPUFUNC(op_c07b_0), 0, 49275 }, /* AND.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c07c_0), 0, 49276 }, /* AND.W #.W,Dn */ +{ CPUFUNC(op_c080_0), 0, 49280 }, /* AND.L Dn,Dn */ +{ CPUFUNC(op_c090_0), 0, 49296 }, /* AND.L (An),Dn */ +{ CPUFUNC(op_c098_0), 0, 49304 }, /* AND.L (An)+,Dn */ +{ CPUFUNC(op_c0a0_0), 0, 49312 }, /* AND.L -(An),Dn */ +{ CPUFUNC(op_c0a8_0), 0, 49320 }, /* AND.L (d16,An),Dn */ +{ CPUFUNC(op_c0b0_0), 0, 49328 }, /* AND.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_c0b8_0), 0, 49336 }, /* AND.L (xxx).W,Dn */ +{ CPUFUNC(op_c0b9_0), 0, 49337 }, /* AND.L (xxx).L,Dn */ +{ CPUFUNC(op_c0ba_0), 0, 49338 }, /* AND.L (d16,PC),Dn */ +{ CPUFUNC(op_c0bb_0), 0, 49339 }, /* AND.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c0bc_0), 0, 49340 }, /* AND.L #.L,Dn */ +{ CPUFUNC(op_c0c0_0), 0, 49344 }, /* MULU.W Dn,Dn */ +{ CPUFUNC(op_c0d0_0), 0, 49360 }, /* MULU.W (An),Dn */ +{ CPUFUNC(op_c0d8_0), 0, 49368 }, /* MULU.W (An)+,Dn */ +{ CPUFUNC(op_c0e0_0), 0, 49376 }, /* MULU.W -(An),Dn */ +{ CPUFUNC(op_c0e8_0), 0, 49384 }, /* MULU.W (d16,An),Dn */ +{ CPUFUNC(op_c0f0_0), 0, 49392 }, /* MULU.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c0f8_0), 0, 49400 }, /* MULU.W (xxx).W,Dn */ +{ CPUFUNC(op_c0f9_0), 0, 49401 }, /* MULU.W (xxx).L,Dn */ +{ CPUFUNC(op_c0fa_0), 0, 49402 }, /* MULU.W (d16,PC),Dn */ +{ CPUFUNC(op_c0fb_0), 0, 49403 }, /* MULU.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c0fc_0), 0, 49404 }, /* MULU.W #.W,Dn */ +{ CPUFUNC(op_c100_1), 0, 49408 }, /* ABCD.B Dn,Dn */ +{ CPUFUNC(op_c108_1), 0, 49416 }, /* ABCD.B -(An),-(An) */ +{ CPUFUNC(op_c110_0), 0, 49424 }, /* AND.B Dn,(An) */ +{ CPUFUNC(op_c118_0), 0, 49432 }, /* AND.B Dn,(An)+ */ +{ CPUFUNC(op_c120_0), 0, 49440 }, /* AND.B Dn,-(An) */ +{ CPUFUNC(op_c128_0), 0, 49448 }, /* AND.B Dn,(d16,An) */ +{ CPUFUNC(op_c130_0), 0, 49456 }, /* AND.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c138_0), 0, 49464 }, /* AND.B Dn,(xxx).W */ +{ CPUFUNC(op_c139_0), 0, 49465 }, /* AND.B Dn,(xxx).L */ +{ CPUFUNC_FF(op_c140_0), 0, 49472 }, /* EXG.L Dn,Dn */ +{ CPUFUNC_FF(op_c148_0), 0, 49480 }, /* EXG.L An,An */ +{ CPUFUNC(op_c150_0), 0, 49488 }, /* AND.W Dn,(An) */ +{ CPUFUNC(op_c158_0), 0, 49496 }, /* AND.W Dn,(An)+ */ +{ CPUFUNC(op_c160_0), 0, 49504 }, /* AND.W Dn,-(An) */ +{ CPUFUNC(op_c168_0), 0, 49512 }, /* AND.W Dn,(d16,An) */ +{ CPUFUNC(op_c170_0), 0, 49520 }, /* AND.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c178_0), 0, 49528 }, /* AND.W Dn,(xxx).W */ +{ CPUFUNC(op_c179_0), 0, 49529 }, /* AND.W Dn,(xxx).L */ +{ CPUFUNC_FF(op_c188_0), 0, 49544 }, /* EXG.L Dn,An */ +{ CPUFUNC(op_c190_0), 0, 49552 }, /* AND.L Dn,(An) */ +{ CPUFUNC(op_c198_0), 0, 49560 }, /* AND.L Dn,(An)+ */ +{ CPUFUNC(op_c1a0_0), 0, 49568 }, /* AND.L Dn,-(An) */ +{ CPUFUNC(op_c1a8_0), 0, 49576 }, /* AND.L Dn,(d16,An) */ +{ CPUFUNC(op_c1b0_0), 0, 49584 }, /* AND.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c1b8_0), 0, 49592 }, /* AND.L Dn,(xxx).W */ +{ CPUFUNC(op_c1b9_0), 0, 49593 }, /* AND.L Dn,(xxx).L */ +{ CPUFUNC(op_c1c0_0), 0, 49600 }, /* MULS.W Dn,Dn */ +{ CPUFUNC(op_c1d0_0), 0, 49616 }, /* MULS.W (An),Dn */ +{ CPUFUNC(op_c1d8_0), 0, 49624 }, /* MULS.W (An)+,Dn */ +{ CPUFUNC(op_c1e0_0), 0, 49632 }, /* MULS.W -(An),Dn */ +{ CPUFUNC(op_c1e8_0), 0, 49640 }, /* MULS.W (d16,An),Dn */ +{ CPUFUNC(op_c1f0_0), 0, 49648 }, /* MULS.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c1f8_0), 0, 49656 }, /* MULS.W (xxx).W,Dn */ +{ CPUFUNC(op_c1f9_0), 0, 49657 }, /* MULS.W (xxx).L,Dn */ +{ CPUFUNC(op_c1fa_0), 0, 49658 }, /* MULS.W (d16,PC),Dn */ +{ CPUFUNC(op_c1fb_0), 0, 49659 }, /* MULS.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c1fc_0), 0, 49660 }, /* MULS.W #.W,Dn */ +{ CPUFUNC(op_d000_0), 0, 53248 }, /* ADD.B Dn,Dn */ +{ CPUFUNC(op_d010_0), 0, 53264 }, /* ADD.B (An),Dn */ +{ CPUFUNC(op_d018_0), 0, 53272 }, /* ADD.B (An)+,Dn */ +{ CPUFUNC(op_d020_0), 0, 53280 }, /* ADD.B -(An),Dn */ +{ CPUFUNC(op_d028_0), 0, 53288 }, /* ADD.B (d16,An),Dn */ +{ CPUFUNC(op_d030_0), 0, 53296 }, /* ADD.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_d038_0), 0, 53304 }, /* ADD.B (xxx).W,Dn */ +{ CPUFUNC(op_d039_0), 0, 53305 }, /* ADD.B (xxx).L,Dn */ +{ CPUFUNC(op_d03a_0), 0, 53306 }, /* ADD.B (d16,PC),Dn */ +{ CPUFUNC(op_d03b_0), 0, 53307 }, /* ADD.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d03c_0), 0, 53308 }, /* ADD.B #.B,Dn */ +{ CPUFUNC(op_d040_0), 0, 53312 }, /* ADD.W Dn,Dn */ +{ CPUFUNC(op_d048_0), 0, 53320 }, /* ADD.W An,Dn */ +{ CPUFUNC(op_d050_0), 0, 53328 }, /* ADD.W (An),Dn */ +{ CPUFUNC(op_d058_0), 0, 53336 }, /* ADD.W (An)+,Dn */ +{ CPUFUNC(op_d060_0), 0, 53344 }, /* ADD.W -(An),Dn */ +{ CPUFUNC(op_d068_0), 0, 53352 }, /* ADD.W (d16,An),Dn */ +{ CPUFUNC(op_d070_0), 0, 53360 }, /* ADD.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_d078_0), 0, 53368 }, /* ADD.W (xxx).W,Dn */ +{ CPUFUNC(op_d079_0), 0, 53369 }, /* ADD.W (xxx).L,Dn */ +{ CPUFUNC(op_d07a_0), 0, 53370 }, /* ADD.W (d16,PC),Dn */ +{ CPUFUNC(op_d07b_0), 0, 53371 }, /* ADD.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d07c_0), 0, 53372 }, /* ADD.W #.W,Dn */ +{ CPUFUNC(op_d080_0), 0, 53376 }, /* ADD.L Dn,Dn */ +{ CPUFUNC(op_d088_0), 0, 53384 }, /* ADD.L An,Dn */ +{ CPUFUNC(op_d090_0), 0, 53392 }, /* ADD.L (An),Dn */ +{ CPUFUNC(op_d098_0), 0, 53400 }, /* ADD.L (An)+,Dn */ +{ CPUFUNC(op_d0a0_0), 0, 53408 }, /* ADD.L -(An),Dn */ +{ CPUFUNC(op_d0a8_0), 0, 53416 }, /* ADD.L (d16,An),Dn */ +{ CPUFUNC(op_d0b0_0), 0, 53424 }, /* ADD.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_d0b8_0), 0, 53432 }, /* ADD.L (xxx).W,Dn */ +{ CPUFUNC(op_d0b9_0), 0, 53433 }, /* ADD.L (xxx).L,Dn */ +{ CPUFUNC(op_d0ba_0), 0, 53434 }, /* ADD.L (d16,PC),Dn */ +{ CPUFUNC(op_d0bb_0), 0, 53435 }, /* ADD.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d0bc_0), 0, 53436 }, /* ADD.L #.L,Dn */ +{ CPUFUNC_FF(op_d0c0_0), 0, 53440 }, /* ADDA.W Dn,An */ +{ CPUFUNC_FF(op_d0c8_0), 0, 53448 }, /* ADDA.W An,An */ +{ CPUFUNC_FF(op_d0d0_0), 0, 53456 }, /* ADDA.W (An),An */ +{ CPUFUNC_FF(op_d0d8_0), 0, 53464 }, /* ADDA.W (An)+,An */ +{ CPUFUNC_FF(op_d0e0_0), 0, 53472 }, /* ADDA.W -(An),An */ +{ CPUFUNC_FF(op_d0e8_0), 0, 53480 }, /* ADDA.W (d16,An),An */ +{ CPUFUNC_FF(op_d0f0_0), 0, 53488 }, /* ADDA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_d0f8_0), 0, 53496 }, /* ADDA.W (xxx).W,An */ +{ CPUFUNC_FF(op_d0f9_0), 0, 53497 }, /* ADDA.W (xxx).L,An */ +{ CPUFUNC_FF(op_d0fa_0), 0, 53498 }, /* ADDA.W (d16,PC),An */ +{ CPUFUNC_FF(op_d0fb_0), 0, 53499 }, /* ADDA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_d0fc_0), 0, 53500 }, /* ADDA.W #.W,An */ +{ CPUFUNC(op_d100_0), 0, 53504 }, /* ADDX.B Dn,Dn */ +{ CPUFUNC(op_d108_0), 0, 53512 }, /* ADDX.B -(An),-(An) */ +{ CPUFUNC(op_d110_0), 0, 53520 }, /* ADD.B Dn,(An) */ +{ CPUFUNC(op_d118_0), 0, 53528 }, /* ADD.B Dn,(An)+ */ +{ CPUFUNC(op_d120_0), 0, 53536 }, /* ADD.B Dn,-(An) */ +{ CPUFUNC(op_d128_0), 0, 53544 }, /* ADD.B Dn,(d16,An) */ +{ CPUFUNC(op_d130_0), 0, 53552 }, /* ADD.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d138_0), 0, 53560 }, /* ADD.B Dn,(xxx).W */ +{ CPUFUNC(op_d139_0), 0, 53561 }, /* ADD.B Dn,(xxx).L */ +{ CPUFUNC(op_d140_0), 0, 53568 }, /* ADDX.W Dn,Dn */ +{ CPUFUNC(op_d148_0), 0, 53576 }, /* ADDX.W -(An),-(An) */ +{ CPUFUNC(op_d150_0), 0, 53584 }, /* ADD.W Dn,(An) */ +{ CPUFUNC(op_d158_0), 0, 53592 }, /* ADD.W Dn,(An)+ */ +{ CPUFUNC(op_d160_0), 0, 53600 }, /* ADD.W Dn,-(An) */ +{ CPUFUNC(op_d168_0), 0, 53608 }, /* ADD.W Dn,(d16,An) */ +{ CPUFUNC(op_d170_0), 0, 53616 }, /* ADD.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d178_0), 0, 53624 }, /* ADD.W Dn,(xxx).W */ +{ CPUFUNC(op_d179_0), 0, 53625 }, /* ADD.W Dn,(xxx).L */ +{ CPUFUNC(op_d180_0), 0, 53632 }, /* ADDX.L Dn,Dn */ +{ CPUFUNC(op_d188_0), 0, 53640 }, /* ADDX.L -(An),-(An) */ +{ CPUFUNC(op_d190_0), 0, 53648 }, /* ADD.L Dn,(An) */ +{ CPUFUNC(op_d198_0), 0, 53656 }, /* ADD.L Dn,(An)+ */ +{ CPUFUNC(op_d1a0_0), 0, 53664 }, /* ADD.L Dn,-(An) */ +{ CPUFUNC(op_d1a8_0), 0, 53672 }, /* ADD.L Dn,(d16,An) */ +{ CPUFUNC(op_d1b0_0), 0, 53680 }, /* ADD.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d1b8_0), 0, 53688 }, /* ADD.L Dn,(xxx).W */ +{ CPUFUNC(op_d1b9_0), 0, 53689 }, /* ADD.L Dn,(xxx).L */ +{ CPUFUNC_FF(op_d1c0_0), 0, 53696 }, /* ADDA.L Dn,An */ +{ CPUFUNC_FF(op_d1c8_0), 0, 53704 }, /* ADDA.L An,An */ +{ CPUFUNC_FF(op_d1d0_0), 0, 53712 }, /* ADDA.L (An),An */ +{ CPUFUNC_FF(op_d1d8_0), 0, 53720 }, /* ADDA.L (An)+,An */ +{ CPUFUNC_FF(op_d1e0_0), 0, 53728 }, /* ADDA.L -(An),An */ +{ CPUFUNC_FF(op_d1e8_0), 0, 53736 }, /* ADDA.L (d16,An),An */ +{ CPUFUNC_FF(op_d1f0_0), 0, 53744 }, /* ADDA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_d1f8_0), 0, 53752 }, /* ADDA.L (xxx).W,An */ +{ CPUFUNC_FF(op_d1f9_0), 0, 53753 }, /* ADDA.L (xxx).L,An */ +{ CPUFUNC_FF(op_d1fa_0), 0, 53754 }, /* ADDA.L (d16,PC),An */ +{ CPUFUNC_FF(op_d1fb_0), 0, 53755 }, /* ADDA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_d1fc_0), 0, 53756 }, /* ADDA.L #.L,An */ +{ CPUFUNC(op_e000_0), 0, 57344 }, /* ASR.B #,Dn */ +{ CPUFUNC(op_e008_0), 0, 57352 }, /* LSR.B #,Dn */ +{ CPUFUNC(op_e010_0), 0, 57360 }, /* ROXR.B #,Dn */ +{ CPUFUNC(op_e018_0), 0, 57368 }, /* ROR.B #,Dn */ +{ CPUFUNC(op_e020_0), 0, 57376 }, /* ASR.B Dn,Dn */ +{ CPUFUNC(op_e028_0), 0, 57384 }, /* LSR.B Dn,Dn */ +{ CPUFUNC(op_e030_0), 0, 57392 }, /* ROXR.B Dn,Dn */ +{ CPUFUNC(op_e038_0), 0, 57400 }, /* ROR.B Dn,Dn */ +{ CPUFUNC(op_e040_0), 0, 57408 }, /* ASR.W #,Dn */ +{ CPUFUNC(op_e048_0), 0, 57416 }, /* LSR.W #,Dn */ +{ CPUFUNC(op_e050_0), 0, 57424 }, /* ROXR.W #,Dn */ +{ CPUFUNC(op_e058_0), 0, 57432 }, /* ROR.W #,Dn */ +{ CPUFUNC(op_e060_0), 0, 57440 }, /* ASR.W Dn,Dn */ +{ CPUFUNC(op_e068_0), 0, 57448 }, /* LSR.W Dn,Dn */ +{ CPUFUNC(op_e070_0), 0, 57456 }, /* ROXR.W Dn,Dn */ +{ CPUFUNC(op_e078_0), 0, 57464 }, /* ROR.W Dn,Dn */ +{ CPUFUNC(op_e080_0), 0, 57472 }, /* ASR.L #,Dn */ +{ CPUFUNC(op_e088_0), 0, 57480 }, /* LSR.L #,Dn */ +{ CPUFUNC(op_e090_0), 0, 57488 }, /* ROXR.L #,Dn */ +{ CPUFUNC(op_e098_0), 0, 57496 }, /* ROR.L #,Dn */ +{ CPUFUNC(op_e0a0_0), 0, 57504 }, /* ASR.L Dn,Dn */ +{ CPUFUNC(op_e0a8_0), 0, 57512 }, /* LSR.L Dn,Dn */ +{ CPUFUNC(op_e0b0_0), 0, 57520 }, /* ROXR.L Dn,Dn */ +{ CPUFUNC(op_e0b8_0), 0, 57528 }, /* ROR.L Dn,Dn */ +{ CPUFUNC(op_e0d0_0), 0, 57552 }, /* ASRW.W (An) */ +{ CPUFUNC(op_e0d8_0), 0, 57560 }, /* ASRW.W (An)+ */ +{ CPUFUNC(op_e0e0_0), 0, 57568 }, /* ASRW.W -(An) */ +{ CPUFUNC(op_e0e8_0), 0, 57576 }, /* ASRW.W (d16,An) */ +{ CPUFUNC(op_e0f0_0), 0, 57584 }, /* ASRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e0f8_0), 0, 57592 }, /* ASRW.W (xxx).W */ +{ CPUFUNC(op_e0f9_0), 0, 57593 }, /* ASRW.W (xxx).L */ +{ CPUFUNC(op_e100_0), 0, 57600 }, /* ASL.B #,Dn */ +{ CPUFUNC(op_e108_0), 0, 57608 }, /* LSL.B #,Dn */ +{ CPUFUNC(op_e110_0), 0, 57616 }, /* ROXL.B #,Dn */ +{ CPUFUNC(op_e118_0), 0, 57624 }, /* ROL.B #,Dn */ +{ CPUFUNC(op_e120_0), 0, 57632 }, /* ASL.B Dn,Dn */ +{ CPUFUNC(op_e128_0), 0, 57640 }, /* LSL.B Dn,Dn */ +{ CPUFUNC(op_e130_0), 0, 57648 }, /* ROXL.B Dn,Dn */ +{ CPUFUNC(op_e138_0), 0, 57656 }, /* ROL.B Dn,Dn */ +{ CPUFUNC(op_e140_0), 0, 57664 }, /* ASL.W #,Dn */ +{ CPUFUNC(op_e148_0), 0, 57672 }, /* LSL.W #,Dn */ +{ CPUFUNC(op_e150_0), 0, 57680 }, /* ROXL.W #,Dn */ +{ CPUFUNC(op_e158_0), 0, 57688 }, /* ROL.W #,Dn */ +{ CPUFUNC(op_e160_0), 0, 57696 }, /* ASL.W Dn,Dn */ +{ CPUFUNC(op_e168_0), 0, 57704 }, /* LSL.W Dn,Dn */ +{ CPUFUNC(op_e170_0), 0, 57712 }, /* ROXL.W Dn,Dn */ +{ CPUFUNC(op_e178_0), 0, 57720 }, /* ROL.W Dn,Dn */ +{ CPUFUNC(op_e180_0), 0, 57728 }, /* ASL.L #,Dn */ +{ CPUFUNC(op_e188_0), 0, 57736 }, /* LSL.L #,Dn */ +{ CPUFUNC(op_e190_0), 0, 57744 }, /* ROXL.L #,Dn */ +{ CPUFUNC(op_e198_0), 0, 57752 }, /* ROL.L #,Dn */ +{ CPUFUNC(op_e1a0_0), 0, 57760 }, /* ASL.L Dn,Dn */ +{ CPUFUNC(op_e1a8_0), 0, 57768 }, /* LSL.L Dn,Dn */ +{ CPUFUNC(op_e1b0_0), 0, 57776 }, /* ROXL.L Dn,Dn */ +{ CPUFUNC(op_e1b8_0), 0, 57784 }, /* ROL.L Dn,Dn */ +{ CPUFUNC(op_e1d0_0), 0, 57808 }, /* ASLW.W (An) */ +{ CPUFUNC(op_e1d8_0), 0, 57816 }, /* ASLW.W (An)+ */ +{ CPUFUNC(op_e1e0_0), 0, 57824 }, /* ASLW.W -(An) */ +{ CPUFUNC(op_e1e8_0), 0, 57832 }, /* ASLW.W (d16,An) */ +{ CPUFUNC(op_e1f0_0), 0, 57840 }, /* ASLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e1f8_0), 0, 57848 }, /* ASLW.W (xxx).W */ +{ CPUFUNC(op_e1f9_0), 0, 57849 }, /* ASLW.W (xxx).L */ +{ CPUFUNC(op_e2d0_0), 0, 58064 }, /* LSRW.W (An) */ +{ CPUFUNC(op_e2d8_0), 0, 58072 }, /* LSRW.W (An)+ */ +{ CPUFUNC(op_e2e0_0), 0, 58080 }, /* LSRW.W -(An) */ +{ CPUFUNC(op_e2e8_0), 0, 58088 }, /* LSRW.W (d16,An) */ +{ CPUFUNC(op_e2f0_0), 0, 58096 }, /* LSRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e2f8_0), 0, 58104 }, /* LSRW.W (xxx).W */ +{ CPUFUNC(op_e2f9_0), 0, 58105 }, /* LSRW.W (xxx).L */ +{ CPUFUNC(op_e3d0_0), 0, 58320 }, /* LSLW.W (An) */ +{ CPUFUNC(op_e3d8_0), 0, 58328 }, /* LSLW.W (An)+ */ +{ CPUFUNC(op_e3e0_0), 0, 58336 }, /* LSLW.W -(An) */ +{ CPUFUNC(op_e3e8_0), 0, 58344 }, /* LSLW.W (d16,An) */ +{ CPUFUNC(op_e3f0_0), 0, 58352 }, /* LSLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e3f8_0), 0, 58360 }, /* LSLW.W (xxx).W */ +{ CPUFUNC(op_e3f9_0), 0, 58361 }, /* LSLW.W (xxx).L */ +{ CPUFUNC(op_e4d0_0), 0, 58576 }, /* ROXRW.W (An) */ +{ CPUFUNC(op_e4d8_0), 0, 58584 }, /* ROXRW.W (An)+ */ +{ CPUFUNC(op_e4e0_0), 0, 58592 }, /* ROXRW.W -(An) */ +{ CPUFUNC(op_e4e8_0), 0, 58600 }, /* ROXRW.W (d16,An) */ +{ CPUFUNC(op_e4f0_0), 0, 58608 }, /* ROXRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e4f8_0), 0, 58616 }, /* ROXRW.W (xxx).W */ +{ CPUFUNC(op_e4f9_0), 0, 58617 }, /* ROXRW.W (xxx).L */ +{ CPUFUNC(op_e5d0_0), 0, 58832 }, /* ROXLW.W (An) */ +{ CPUFUNC(op_e5d8_0), 0, 58840 }, /* ROXLW.W (An)+ */ +{ CPUFUNC(op_e5e0_0), 0, 58848 }, /* ROXLW.W -(An) */ +{ CPUFUNC(op_e5e8_0), 0, 58856 }, /* ROXLW.W (d16,An) */ +{ CPUFUNC(op_e5f0_0), 0, 58864 }, /* ROXLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e5f8_0), 0, 58872 }, /* ROXLW.W (xxx).W */ +{ CPUFUNC(op_e5f9_0), 0, 58873 }, /* ROXLW.W (xxx).L */ +{ CPUFUNC(op_e6d0_0), 0, 59088 }, /* RORW.W (An) */ +{ CPUFUNC(op_e6d8_0), 0, 59096 }, /* RORW.W (An)+ */ +{ CPUFUNC(op_e6e0_0), 0, 59104 }, /* RORW.W -(An) */ +{ CPUFUNC(op_e6e8_0), 0, 59112 }, /* RORW.W (d16,An) */ +{ CPUFUNC(op_e6f0_0), 0, 59120 }, /* RORW.W (d8,An,Xn) */ +{ CPUFUNC(op_e6f8_0), 0, 59128 }, /* RORW.W (xxx).W */ +{ CPUFUNC(op_e6f9_0), 0, 59129 }, /* RORW.W (xxx).L */ +{ CPUFUNC(op_e7d0_0), 0, 59344 }, /* ROLW.W (An) */ +{ CPUFUNC(op_e7d8_0), 0, 59352 }, /* ROLW.W (An)+ */ +{ CPUFUNC(op_e7e0_0), 0, 59360 }, /* ROLW.W -(An) */ +{ CPUFUNC(op_e7e8_0), 0, 59368 }, /* ROLW.W (d16,An) */ +{ CPUFUNC(op_e7f0_0), 0, 59376 }, /* ROLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e7f8_0), 0, 59384 }, /* ROLW.W (xxx).W */ +{ CPUFUNC(op_e7f9_0), 0, 59385 }, /* ROLW.W (xxx).L */ +{ CPUFUNC(op_e8c0_0), 0, 59584 }, /* BFTST.L #.W,Dn */ +{ CPUFUNC(op_e8d0_0), 0, 59600 }, /* BFTST.L #.W,(An) */ +{ CPUFUNC(op_e8e8_0), 0, 59624 }, /* BFTST.L #.W,(d16,An) */ +{ CPUFUNC(op_e8f0_0), 0, 59632 }, /* BFTST.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_e8f8_0), 0, 59640 }, /* BFTST.L #.W,(xxx).W */ +{ CPUFUNC(op_e8f9_0), 0, 59641 }, /* BFTST.L #.W,(xxx).L */ +{ CPUFUNC(op_e8fa_0), 0, 59642 }, /* BFTST.L #.W,(d16,PC) */ +{ CPUFUNC(op_e8fb_0), 0, 59643 }, /* BFTST.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_e9c0_0), 0, 59840 }, /* BFEXTU.L #.W,Dn */ +{ CPUFUNC(op_e9d0_0), 0, 59856 }, /* BFEXTU.L #.W,(An) */ +{ CPUFUNC(op_e9e8_0), 0, 59880 }, /* BFEXTU.L #.W,(d16,An) */ +{ CPUFUNC(op_e9f0_0), 0, 59888 }, /* BFEXTU.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_e9f8_0), 0, 59896 }, /* BFEXTU.L #.W,(xxx).W */ +{ CPUFUNC(op_e9f9_0), 0, 59897 }, /* BFEXTU.L #.W,(xxx).L */ +{ CPUFUNC(op_e9fa_0), 0, 59898 }, /* BFEXTU.L #.W,(d16,PC) */ +{ CPUFUNC(op_e9fb_0), 0, 59899 }, /* BFEXTU.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_eac0_0), 0, 60096 }, /* BFCHG.L #.W,Dn */ +{ CPUFUNC(op_ead0_0), 0, 60112 }, /* BFCHG.L #.W,(An) */ +{ CPUFUNC(op_eae8_0), 0, 60136 }, /* BFCHG.L #.W,(d16,An) */ +{ CPUFUNC(op_eaf0_0), 0, 60144 }, /* BFCHG.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_eaf8_0), 0, 60152 }, /* BFCHG.L #.W,(xxx).W */ +{ CPUFUNC(op_eaf9_0), 0, 60153 }, /* BFCHG.L #.W,(xxx).L */ +{ CPUFUNC(op_ebc0_0), 0, 60352 }, /* BFEXTS.L #.W,Dn */ +{ CPUFUNC(op_ebd0_0), 0, 60368 }, /* BFEXTS.L #.W,(An) */ +{ CPUFUNC(op_ebe8_0), 0, 60392 }, /* BFEXTS.L #.W,(d16,An) */ +{ CPUFUNC(op_ebf0_0), 0, 60400 }, /* BFEXTS.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_ebf8_0), 0, 60408 }, /* BFEXTS.L #.W,(xxx).W */ +{ CPUFUNC(op_ebf9_0), 0, 60409 }, /* BFEXTS.L #.W,(xxx).L */ +{ CPUFUNC(op_ebfa_0), 0, 60410 }, /* BFEXTS.L #.W,(d16,PC) */ +{ CPUFUNC(op_ebfb_0), 0, 60411 }, /* BFEXTS.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_ecc0_0), 0, 60608 }, /* BFCLR.L #.W,Dn */ +{ CPUFUNC(op_ecd0_0), 0, 60624 }, /* BFCLR.L #.W,(An) */ +{ CPUFUNC(op_ece8_0), 0, 60648 }, /* BFCLR.L #.W,(d16,An) */ +{ CPUFUNC(op_ecf0_0), 0, 60656 }, /* BFCLR.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_ecf8_0), 0, 60664 }, /* BFCLR.L #.W,(xxx).W */ +{ CPUFUNC(op_ecf9_0), 0, 60665 }, /* BFCLR.L #.W,(xxx).L */ +{ CPUFUNC(op_edc0_0), 0, 60864 }, /* BFFFO.L #.W,Dn */ +{ CPUFUNC(op_edd0_0), 0, 60880 }, /* BFFFO.L #.W,(An) */ +{ CPUFUNC(op_ede8_0), 0, 60904 }, /* BFFFO.L #.W,(d16,An) */ +{ CPUFUNC(op_edf0_0), 0, 60912 }, /* BFFFO.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_edf8_0), 0, 60920 }, /* BFFFO.L #.W,(xxx).W */ +{ CPUFUNC(op_edf9_0), 0, 60921 }, /* BFFFO.L #.W,(xxx).L */ +{ CPUFUNC(op_edfa_0), 0, 60922 }, /* BFFFO.L #.W,(d16,PC) */ +{ CPUFUNC(op_edfb_0), 0, 60923 }, /* BFFFO.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_eec0_0), 0, 61120 }, /* BFSET.L #.W,Dn */ +{ CPUFUNC(op_eed0_0), 0, 61136 }, /* BFSET.L #.W,(An) */ +{ CPUFUNC(op_eee8_0), 0, 61160 }, /* BFSET.L #.W,(d16,An) */ +{ CPUFUNC(op_eef0_0), 0, 61168 }, /* BFSET.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_eef8_0), 0, 61176 }, /* BFSET.L #.W,(xxx).W */ +{ CPUFUNC(op_eef9_0), 0, 61177 }, /* BFSET.L #.W,(xxx).L */ +{ CPUFUNC(op_efc0_0), 0, 61376 }, /* BFINS.L #.W,Dn */ +{ CPUFUNC(op_efd0_0), 0, 61392 }, /* BFINS.L #.W,(An) */ +{ CPUFUNC(op_efe8_0), 0, 61416 }, /* BFINS.L #.W,(d16,An) */ +{ CPUFUNC(op_eff0_0), 0, 61424 }, /* BFINS.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_eff8_0), 0, 61432 }, /* BFINS.L #.W,(xxx).W */ +{ CPUFUNC(op_eff9_0), 0, 61433 }, /* BFINS.L #.W,(xxx).L */ +{ CPUFUNC_FF(op_f200_0), 0, 61952 }, /* FPP.L #.W,Dn */ +{ CPUFUNC_FF(op_f208_0), 0, 61960 }, /* FPP.L #.W,An */ +{ CPUFUNC_FF(op_f210_0), 0, 61968 }, /* FPP.L #.W,(An) */ +{ CPUFUNC_FF(op_f218_0), 0, 61976 }, /* FPP.L #.W,(An)+ */ +{ CPUFUNC_FF(op_f220_0), 0, 61984 }, /* FPP.L #.W,-(An) */ +{ CPUFUNC_FF(op_f228_0), 0, 61992 }, /* FPP.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_f230_0), 0, 62000 }, /* FPP.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_f238_0), 0, 62008 }, /* FPP.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_f239_0), 0, 62009 }, /* FPP.L #.W,(xxx).L */ +{ CPUFUNC_FF(op_f23a_0), 0, 62010 }, /* FPP.L #.W,(d16,PC) */ +{ CPUFUNC_FF(op_f23b_0), 0, 62011 }, /* FPP.L #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_f23c_0), 0, 62012 }, /* FPP.L #.W,#.L */ +{ CPUFUNC_FF(op_f240_0), 0, 62016 }, /* FScc.L #.W,Dn */ +{ CPUFUNC_FF(op_f248_0), 0, 62024 }, /* FDBcc.L #.W,Dn */ +{ CPUFUNC_FF(op_f250_0), 0, 62032 }, /* FScc.L #.W,(An) */ +{ CPUFUNC_FF(op_f258_0), 0, 62040 }, /* FScc.L #.W,(An)+ */ +{ CPUFUNC_FF(op_f260_0), 0, 62048 }, /* FScc.L #.W,-(An) */ +{ CPUFUNC_FF(op_f268_0), 0, 62056 }, /* FScc.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_f270_0), 0, 62064 }, /* FScc.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_f278_0), 0, 62072 }, /* FScc.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_f279_0), 0, 62073 }, /* FScc.L #.W,(xxx).L */ +{ CPUFUNC_FF(op_f27a_0), 0, 62074 }, /* FTRAPcc.L #.W */ +{ CPUFUNC_FF(op_f27b_0), 0, 62075 }, /* FTRAPcc.L #.L */ +{ CPUFUNC_FF(op_f27c_0), 0, 62076 }, /* FTRAPcc.L */ +{ CPUFUNC_FF(op_f280_0), 0, 62080 }, /* FBcc.L #,#.W */ +{ CPUFUNC_FF(op_f2c0_0), 0, 62144 }, /* FBcc.L #,#.L */ +{ CPUFUNC_FF(op_f310_0), 0, 62224 }, /* FSAVE.L (An) */ +{ CPUFUNC_FF(op_f320_0), 0, 62240 }, /* FSAVE.L -(An) */ +{ CPUFUNC_FF(op_f328_0), 0, 62248 }, /* FSAVE.L (d16,An) */ +{ CPUFUNC_FF(op_f330_0), 0, 62256 }, /* FSAVE.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_f338_0), 0, 62264 }, /* FSAVE.L (xxx).W */ +{ CPUFUNC_FF(op_f339_0), 0, 62265 }, /* FSAVE.L (xxx).L */ +{ CPUFUNC_FF(op_f350_0), 0, 62288 }, /* FRESTORE.L (An) */ +{ CPUFUNC_FF(op_f358_0), 0, 62296 }, /* FRESTORE.L (An)+ */ +{ CPUFUNC_FF(op_f368_0), 0, 62312 }, /* FRESTORE.L (d16,An) */ +{ CPUFUNC_FF(op_f370_0), 0, 62320 }, /* FRESTORE.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_f378_0), 0, 62328 }, /* FRESTORE.L (xxx).W */ +{ CPUFUNC_FF(op_f379_0), 0, 62329 }, /* FRESTORE.L (xxx).L */ +{ CPUFUNC_FF(op_f37a_0), 0, 62330 }, /* FRESTORE.L (d16,PC) */ +{ CPUFUNC_FF(op_f37b_0), 0, 62331 }, /* FRESTORE.L (d8,PC,Xn) */ +{ 0, 0, 0 }}; +struct cputbl CPUFUNC(op_smalltbl_2)[] = { +{ CPUFUNC(op_0_0), 0, 0 }, /* OR.B #.B,Dn */ +{ CPUFUNC(op_10_0), 0, 16 }, /* OR.B #.B,(An) */ +{ CPUFUNC(op_18_0), 0, 24 }, /* OR.B #.B,(An)+ */ +{ CPUFUNC(op_20_0), 0, 32 }, /* OR.B #.B,-(An) */ +{ CPUFUNC(op_28_0), 0, 40 }, /* OR.B #.B,(d16,An) */ +{ CPUFUNC(op_30_0), 0, 48 }, /* OR.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_38_0), 0, 56 }, /* OR.B #.B,(xxx).W */ +{ CPUFUNC(op_39_0), 0, 57 }, /* OR.B #.B,(xxx).L */ +{ CPUFUNC(op_3c_0), 0, 60 }, /* ORSR.B #.W */ +{ CPUFUNC(op_40_0), 0, 64 }, /* OR.W #.W,Dn */ +{ CPUFUNC(op_50_0), 0, 80 }, /* OR.W #.W,(An) */ +{ CPUFUNC(op_58_0), 0, 88 }, /* OR.W #.W,(An)+ */ +{ CPUFUNC(op_60_0), 0, 96 }, /* OR.W #.W,-(An) */ +{ CPUFUNC(op_68_0), 0, 104 }, /* OR.W #.W,(d16,An) */ +{ CPUFUNC(op_70_0), 0, 112 }, /* OR.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_78_0), 0, 120 }, /* OR.W #.W,(xxx).W */ +{ CPUFUNC(op_79_0), 0, 121 }, /* OR.W #.W,(xxx).L */ +{ CPUFUNC(op_7c_0), 0, 124 }, /* ORSR.W #.W */ +{ CPUFUNC(op_80_0), 0, 128 }, /* OR.L #.L,Dn */ +{ CPUFUNC(op_90_0), 0, 144 }, /* OR.L #.L,(An) */ +{ CPUFUNC(op_98_0), 0, 152 }, /* OR.L #.L,(An)+ */ +{ CPUFUNC(op_a0_0), 0, 160 }, /* OR.L #.L,-(An) */ +{ CPUFUNC(op_a8_0), 0, 168 }, /* OR.L #.L,(d16,An) */ +{ CPUFUNC(op_b0_0), 0, 176 }, /* OR.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_b8_0), 0, 184 }, /* OR.L #.L,(xxx).W */ +{ CPUFUNC(op_b9_0), 0, 185 }, /* OR.L #.L,(xxx).L */ +{ CPUFUNC(op_d0_0), 0, 208 }, /* CHK2.B #.W,(An) */ +{ CPUFUNC(op_e8_0), 0, 232 }, /* CHK2.B #.W,(d16,An) */ +{ CPUFUNC(op_f0_0), 0, 240 }, /* CHK2.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_f8_0), 0, 248 }, /* CHK2.B #.W,(xxx).W */ +{ CPUFUNC(op_f9_0), 0, 249 }, /* CHK2.B #.W,(xxx).L */ +{ CPUFUNC(op_fa_0), 0, 250 }, /* CHK2.B #.W,(d16,PC) */ +{ CPUFUNC(op_fb_0), 0, 251 }, /* CHK2.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_100_0), 0, 256 }, /* BTST.L Dn,Dn */ +{ CPUFUNC_FF(op_108_0), 0, 264 }, /* MVPMR.W (d16,An),Dn */ +{ CPUFUNC(op_110_0), 0, 272 }, /* BTST.B Dn,(An) */ +{ CPUFUNC(op_118_0), 0, 280 }, /* BTST.B Dn,(An)+ */ +{ CPUFUNC(op_120_0), 0, 288 }, /* BTST.B Dn,-(An) */ +{ CPUFUNC(op_128_0), 0, 296 }, /* BTST.B Dn,(d16,An) */ +{ CPUFUNC(op_130_0), 0, 304 }, /* BTST.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_138_0), 0, 312 }, /* BTST.B Dn,(xxx).W */ +{ CPUFUNC(op_139_0), 0, 313 }, /* BTST.B Dn,(xxx).L */ +{ CPUFUNC(op_13a_0), 0, 314 }, /* BTST.B Dn,(d16,PC) */ +{ CPUFUNC(op_13b_0), 0, 315 }, /* BTST.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_13c_0), 0, 316 }, /* BTST.B Dn,#.B */ +{ CPUFUNC(op_140_0), 0, 320 }, /* BCHG.L Dn,Dn */ +{ CPUFUNC_FF(op_148_0), 0, 328 }, /* MVPMR.L (d16,An),Dn */ +{ CPUFUNC(op_150_0), 0, 336 }, /* BCHG.B Dn,(An) */ +{ CPUFUNC(op_158_0), 0, 344 }, /* BCHG.B Dn,(An)+ */ +{ CPUFUNC(op_160_0), 0, 352 }, /* BCHG.B Dn,-(An) */ +{ CPUFUNC(op_168_0), 0, 360 }, /* BCHG.B Dn,(d16,An) */ +{ CPUFUNC(op_170_0), 0, 368 }, /* BCHG.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_178_0), 0, 376 }, /* BCHG.B Dn,(xxx).W */ +{ CPUFUNC(op_179_0), 0, 377 }, /* BCHG.B Dn,(xxx).L */ +{ CPUFUNC(op_17a_0), 0, 378 }, /* BCHG.B Dn,(d16,PC) */ +{ CPUFUNC(op_17b_0), 0, 379 }, /* BCHG.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_180_0), 0, 384 }, /* BCLR.L Dn,Dn */ +{ CPUFUNC_FF(op_188_0), 0, 392 }, /* MVPRM.W Dn,(d16,An) */ +{ CPUFUNC(op_190_0), 0, 400 }, /* BCLR.B Dn,(An) */ +{ CPUFUNC(op_198_0), 0, 408 }, /* BCLR.B Dn,(An)+ */ +{ CPUFUNC(op_1a0_0), 0, 416 }, /* BCLR.B Dn,-(An) */ +{ CPUFUNC(op_1a8_0), 0, 424 }, /* BCLR.B Dn,(d16,An) */ +{ CPUFUNC(op_1b0_0), 0, 432 }, /* BCLR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1b8_0), 0, 440 }, /* BCLR.B Dn,(xxx).W */ +{ CPUFUNC(op_1b9_0), 0, 441 }, /* BCLR.B Dn,(xxx).L */ +{ CPUFUNC(op_1ba_0), 0, 442 }, /* BCLR.B Dn,(d16,PC) */ +{ CPUFUNC(op_1bb_0), 0, 443 }, /* BCLR.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_1c0_0), 0, 448 }, /* BSET.L Dn,Dn */ +{ CPUFUNC_FF(op_1c8_0), 0, 456 }, /* MVPRM.L Dn,(d16,An) */ +{ CPUFUNC(op_1d0_0), 0, 464 }, /* BSET.B Dn,(An) */ +{ CPUFUNC(op_1d8_0), 0, 472 }, /* BSET.B Dn,(An)+ */ +{ CPUFUNC(op_1e0_0), 0, 480 }, /* BSET.B Dn,-(An) */ +{ CPUFUNC(op_1e8_0), 0, 488 }, /* BSET.B Dn,(d16,An) */ +{ CPUFUNC(op_1f0_0), 0, 496 }, /* BSET.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1f8_0), 0, 504 }, /* BSET.B Dn,(xxx).W */ +{ CPUFUNC(op_1f9_0), 0, 505 }, /* BSET.B Dn,(xxx).L */ +{ CPUFUNC(op_1fa_0), 0, 506 }, /* BSET.B Dn,(d16,PC) */ +{ CPUFUNC(op_1fb_0), 0, 507 }, /* BSET.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_200_0), 0, 512 }, /* AND.B #.B,Dn */ +{ CPUFUNC(op_210_0), 0, 528 }, /* AND.B #.B,(An) */ +{ CPUFUNC(op_218_0), 0, 536 }, /* AND.B #.B,(An)+ */ +{ CPUFUNC(op_220_0), 0, 544 }, /* AND.B #.B,-(An) */ +{ CPUFUNC(op_228_0), 0, 552 }, /* AND.B #.B,(d16,An) */ +{ CPUFUNC(op_230_0), 0, 560 }, /* AND.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_238_0), 0, 568 }, /* AND.B #.B,(xxx).W */ +{ CPUFUNC(op_239_0), 0, 569 }, /* AND.B #.B,(xxx).L */ +{ CPUFUNC(op_23c_0), 0, 572 }, /* ANDSR.B #.W */ +{ CPUFUNC(op_240_0), 0, 576 }, /* AND.W #.W,Dn */ +{ CPUFUNC(op_250_0), 0, 592 }, /* AND.W #.W,(An) */ +{ CPUFUNC(op_258_0), 0, 600 }, /* AND.W #.W,(An)+ */ +{ CPUFUNC(op_260_0), 0, 608 }, /* AND.W #.W,-(An) */ +{ CPUFUNC(op_268_0), 0, 616 }, /* AND.W #.W,(d16,An) */ +{ CPUFUNC(op_270_0), 0, 624 }, /* AND.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_278_0), 0, 632 }, /* AND.W #.W,(xxx).W */ +{ CPUFUNC(op_279_0), 0, 633 }, /* AND.W #.W,(xxx).L */ +{ CPUFUNC(op_27c_0), 0, 636 }, /* ANDSR.W #.W */ +{ CPUFUNC(op_280_0), 0, 640 }, /* AND.L #.L,Dn */ +{ CPUFUNC(op_290_0), 0, 656 }, /* AND.L #.L,(An) */ +{ CPUFUNC(op_298_0), 0, 664 }, /* AND.L #.L,(An)+ */ +{ CPUFUNC(op_2a0_0), 0, 672 }, /* AND.L #.L,-(An) */ +{ CPUFUNC(op_2a8_0), 0, 680 }, /* AND.L #.L,(d16,An) */ +{ CPUFUNC(op_2b0_0), 0, 688 }, /* AND.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_2b8_0), 0, 696 }, /* AND.L #.L,(xxx).W */ +{ CPUFUNC(op_2b9_0), 0, 697 }, /* AND.L #.L,(xxx).L */ +{ CPUFUNC(op_2d0_0), 0, 720 }, /* CHK2.W #.W,(An) */ +{ CPUFUNC(op_2e8_0), 0, 744 }, /* CHK2.W #.W,(d16,An) */ +{ CPUFUNC(op_2f0_0), 0, 752 }, /* CHK2.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_2f8_0), 0, 760 }, /* CHK2.W #.W,(xxx).W */ +{ CPUFUNC(op_2f9_0), 0, 761 }, /* CHK2.W #.W,(xxx).L */ +{ CPUFUNC(op_2fa_0), 0, 762 }, /* CHK2.W #.W,(d16,PC) */ +{ CPUFUNC(op_2fb_0), 0, 763 }, /* CHK2.W #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_400_0), 0, 1024 }, /* SUB.B #.B,Dn */ +{ CPUFUNC(op_410_0), 0, 1040 }, /* SUB.B #.B,(An) */ +{ CPUFUNC(op_418_0), 0, 1048 }, /* SUB.B #.B,(An)+ */ +{ CPUFUNC(op_420_0), 0, 1056 }, /* SUB.B #.B,-(An) */ +{ CPUFUNC(op_428_0), 0, 1064 }, /* SUB.B #.B,(d16,An) */ +{ CPUFUNC(op_430_0), 0, 1072 }, /* SUB.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_438_0), 0, 1080 }, /* SUB.B #.B,(xxx).W */ +{ CPUFUNC(op_439_0), 0, 1081 }, /* SUB.B #.B,(xxx).L */ +{ CPUFUNC(op_440_0), 0, 1088 }, /* SUB.W #.W,Dn */ +{ CPUFUNC(op_450_0), 0, 1104 }, /* SUB.W #.W,(An) */ +{ CPUFUNC(op_458_0), 0, 1112 }, /* SUB.W #.W,(An)+ */ +{ CPUFUNC(op_460_0), 0, 1120 }, /* SUB.W #.W,-(An) */ +{ CPUFUNC(op_468_0), 0, 1128 }, /* SUB.W #.W,(d16,An) */ +{ CPUFUNC(op_470_0), 0, 1136 }, /* SUB.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_478_0), 0, 1144 }, /* SUB.W #.W,(xxx).W */ +{ CPUFUNC(op_479_0), 0, 1145 }, /* SUB.W #.W,(xxx).L */ +{ CPUFUNC(op_480_0), 0, 1152 }, /* SUB.L #.L,Dn */ +{ CPUFUNC(op_490_0), 0, 1168 }, /* SUB.L #.L,(An) */ +{ CPUFUNC(op_498_0), 0, 1176 }, /* SUB.L #.L,(An)+ */ +{ CPUFUNC(op_4a0_0), 0, 1184 }, /* SUB.L #.L,-(An) */ +{ CPUFUNC(op_4a8_0), 0, 1192 }, /* SUB.L #.L,(d16,An) */ +{ CPUFUNC(op_4b0_0), 0, 1200 }, /* SUB.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_4b8_0), 0, 1208 }, /* SUB.L #.L,(xxx).W */ +{ CPUFUNC(op_4b9_0), 0, 1209 }, /* SUB.L #.L,(xxx).L */ +{ CPUFUNC(op_4d0_0), 0, 1232 }, /* CHK2.L #.W,(An) */ +{ CPUFUNC(op_4e8_0), 0, 1256 }, /* CHK2.L #.W,(d16,An) */ +{ CPUFUNC(op_4f0_0), 0, 1264 }, /* CHK2.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_4f8_0), 0, 1272 }, /* CHK2.L #.W,(xxx).W */ +{ CPUFUNC(op_4f9_0), 0, 1273 }, /* CHK2.L #.W,(xxx).L */ +{ CPUFUNC(op_4fa_0), 0, 1274 }, /* CHK2.L #.W,(d16,PC) */ +{ CPUFUNC(op_4fb_0), 0, 1275 }, /* CHK2.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_600_0), 0, 1536 }, /* ADD.B #.B,Dn */ +{ CPUFUNC(op_610_0), 0, 1552 }, /* ADD.B #.B,(An) */ +{ CPUFUNC(op_618_0), 0, 1560 }, /* ADD.B #.B,(An)+ */ +{ CPUFUNC(op_620_0), 0, 1568 }, /* ADD.B #.B,-(An) */ +{ CPUFUNC(op_628_0), 0, 1576 }, /* ADD.B #.B,(d16,An) */ +{ CPUFUNC(op_630_0), 0, 1584 }, /* ADD.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_638_0), 0, 1592 }, /* ADD.B #.B,(xxx).W */ +{ CPUFUNC(op_639_0), 0, 1593 }, /* ADD.B #.B,(xxx).L */ +{ CPUFUNC(op_640_0), 0, 1600 }, /* ADD.W #.W,Dn */ +{ CPUFUNC(op_650_0), 0, 1616 }, /* ADD.W #.W,(An) */ +{ CPUFUNC(op_658_0), 0, 1624 }, /* ADD.W #.W,(An)+ */ +{ CPUFUNC(op_660_0), 0, 1632 }, /* ADD.W #.W,-(An) */ +{ CPUFUNC(op_668_0), 0, 1640 }, /* ADD.W #.W,(d16,An) */ +{ CPUFUNC(op_670_0), 0, 1648 }, /* ADD.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_678_0), 0, 1656 }, /* ADD.W #.W,(xxx).W */ +{ CPUFUNC(op_679_0), 0, 1657 }, /* ADD.W #.W,(xxx).L */ +{ CPUFUNC(op_680_0), 0, 1664 }, /* ADD.L #.L,Dn */ +{ CPUFUNC(op_690_0), 0, 1680 }, /* ADD.L #.L,(An) */ +{ CPUFUNC(op_698_0), 0, 1688 }, /* ADD.L #.L,(An)+ */ +{ CPUFUNC(op_6a0_0), 0, 1696 }, /* ADD.L #.L,-(An) */ +{ CPUFUNC(op_6a8_0), 0, 1704 }, /* ADD.L #.L,(d16,An) */ +{ CPUFUNC(op_6b0_0), 0, 1712 }, /* ADD.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_6b8_0), 0, 1720 }, /* ADD.L #.L,(xxx).W */ +{ CPUFUNC(op_6b9_0), 0, 1721 }, /* ADD.L #.L,(xxx).L */ +{ CPUFUNC(op_6c0_0), 0, 1728 }, /* RTM.L Dn */ +{ CPUFUNC(op_6c8_0), 0, 1736 }, /* RTM.L An */ +{ CPUFUNC_FF(op_6d0_0), 0, 1744 }, /* CALLM.L (An) */ +{ CPUFUNC_FF(op_6e8_0), 0, 1768 }, /* CALLM.L (d16,An) */ +{ CPUFUNC_FF(op_6f0_0), 0, 1776 }, /* CALLM.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_6f8_0), 0, 1784 }, /* CALLM.L (xxx).W */ +{ CPUFUNC_FF(op_6f9_0), 0, 1785 }, /* CALLM.L (xxx).L */ +{ CPUFUNC_FF(op_6fa_0), 0, 1786 }, /* CALLM.L (d16,PC) */ +{ CPUFUNC_FF(op_6fb_0), 0, 1787 }, /* CALLM.L (d8,PC,Xn) */ +{ CPUFUNC(op_800_0), 0, 2048 }, /* BTST.L #.W,Dn */ +{ CPUFUNC(op_810_0), 0, 2064 }, /* BTST.B #.W,(An) */ +{ CPUFUNC(op_818_0), 0, 2072 }, /* BTST.B #.W,(An)+ */ +{ CPUFUNC(op_820_0), 0, 2080 }, /* BTST.B #.W,-(An) */ +{ CPUFUNC(op_828_0), 0, 2088 }, /* BTST.B #.W,(d16,An) */ +{ CPUFUNC(op_830_0), 0, 2096 }, /* BTST.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_838_0), 0, 2104 }, /* BTST.B #.W,(xxx).W */ +{ CPUFUNC(op_839_0), 0, 2105 }, /* BTST.B #.W,(xxx).L */ +{ CPUFUNC(op_83a_0), 0, 2106 }, /* BTST.B #.W,(d16,PC) */ +{ CPUFUNC(op_83b_0), 0, 2107 }, /* BTST.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_83c_0), 0, 2108 }, /* BTST.B #.W,#.B */ +{ CPUFUNC(op_840_0), 0, 2112 }, /* BCHG.L #.W,Dn */ +{ CPUFUNC(op_850_0), 0, 2128 }, /* BCHG.B #.W,(An) */ +{ CPUFUNC(op_858_0), 0, 2136 }, /* BCHG.B #.W,(An)+ */ +{ CPUFUNC(op_860_0), 0, 2144 }, /* BCHG.B #.W,-(An) */ +{ CPUFUNC(op_868_0), 0, 2152 }, /* BCHG.B #.W,(d16,An) */ +{ CPUFUNC(op_870_0), 0, 2160 }, /* BCHG.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_878_0), 0, 2168 }, /* BCHG.B #.W,(xxx).W */ +{ CPUFUNC(op_879_0), 0, 2169 }, /* BCHG.B #.W,(xxx).L */ +{ CPUFUNC(op_87a_0), 0, 2170 }, /* BCHG.B #.W,(d16,PC) */ +{ CPUFUNC(op_87b_0), 0, 2171 }, /* BCHG.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_880_0), 0, 2176 }, /* BCLR.L #.W,Dn */ +{ CPUFUNC(op_890_0), 0, 2192 }, /* BCLR.B #.W,(An) */ +{ CPUFUNC(op_898_0), 0, 2200 }, /* BCLR.B #.W,(An)+ */ +{ CPUFUNC(op_8a0_0), 0, 2208 }, /* BCLR.B #.W,-(An) */ +{ CPUFUNC(op_8a8_0), 0, 2216 }, /* BCLR.B #.W,(d16,An) */ +{ CPUFUNC(op_8b0_0), 0, 2224 }, /* BCLR.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_8b8_0), 0, 2232 }, /* BCLR.B #.W,(xxx).W */ +{ CPUFUNC(op_8b9_0), 0, 2233 }, /* BCLR.B #.W,(xxx).L */ +{ CPUFUNC(op_8ba_0), 0, 2234 }, /* BCLR.B #.W,(d16,PC) */ +{ CPUFUNC(op_8bb_0), 0, 2235 }, /* BCLR.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_8c0_0), 0, 2240 }, /* BSET.L #.W,Dn */ +{ CPUFUNC(op_8d0_0), 0, 2256 }, /* BSET.B #.W,(An) */ +{ CPUFUNC(op_8d8_0), 0, 2264 }, /* BSET.B #.W,(An)+ */ +{ CPUFUNC(op_8e0_0), 0, 2272 }, /* BSET.B #.W,-(An) */ +{ CPUFUNC(op_8e8_0), 0, 2280 }, /* BSET.B #.W,(d16,An) */ +{ CPUFUNC(op_8f0_0), 0, 2288 }, /* BSET.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_8f8_0), 0, 2296 }, /* BSET.B #.W,(xxx).W */ +{ CPUFUNC(op_8f9_0), 0, 2297 }, /* BSET.B #.W,(xxx).L */ +{ CPUFUNC(op_8fa_0), 0, 2298 }, /* BSET.B #.W,(d16,PC) */ +{ CPUFUNC(op_8fb_0), 0, 2299 }, /* BSET.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_a00_0), 0, 2560 }, /* EOR.B #.B,Dn */ +{ CPUFUNC(op_a10_0), 0, 2576 }, /* EOR.B #.B,(An) */ +{ CPUFUNC(op_a18_0), 0, 2584 }, /* EOR.B #.B,(An)+ */ +{ CPUFUNC(op_a20_0), 0, 2592 }, /* EOR.B #.B,-(An) */ +{ CPUFUNC(op_a28_0), 0, 2600 }, /* EOR.B #.B,(d16,An) */ +{ CPUFUNC(op_a30_0), 0, 2608 }, /* EOR.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_a38_0), 0, 2616 }, /* EOR.B #.B,(xxx).W */ +{ CPUFUNC(op_a39_0), 0, 2617 }, /* EOR.B #.B,(xxx).L */ +{ CPUFUNC(op_a3c_0), 0, 2620 }, /* EORSR.B #.W */ +{ CPUFUNC(op_a40_0), 0, 2624 }, /* EOR.W #.W,Dn */ +{ CPUFUNC(op_a50_0), 0, 2640 }, /* EOR.W #.W,(An) */ +{ CPUFUNC(op_a58_0), 0, 2648 }, /* EOR.W #.W,(An)+ */ +{ CPUFUNC(op_a60_0), 0, 2656 }, /* EOR.W #.W,-(An) */ +{ CPUFUNC(op_a68_0), 0, 2664 }, /* EOR.W #.W,(d16,An) */ +{ CPUFUNC(op_a70_0), 0, 2672 }, /* EOR.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_a78_0), 0, 2680 }, /* EOR.W #.W,(xxx).W */ +{ CPUFUNC(op_a79_0), 0, 2681 }, /* EOR.W #.W,(xxx).L */ +{ CPUFUNC(op_a7c_0), 0, 2684 }, /* EORSR.W #.W */ +{ CPUFUNC(op_a80_0), 0, 2688 }, /* EOR.L #.L,Dn */ +{ CPUFUNC(op_a90_0), 0, 2704 }, /* EOR.L #.L,(An) */ +{ CPUFUNC(op_a98_0), 0, 2712 }, /* EOR.L #.L,(An)+ */ +{ CPUFUNC(op_aa0_0), 0, 2720 }, /* EOR.L #.L,-(An) */ +{ CPUFUNC(op_aa8_0), 0, 2728 }, /* EOR.L #.L,(d16,An) */ +{ CPUFUNC(op_ab0_0), 0, 2736 }, /* EOR.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_ab8_0), 0, 2744 }, /* EOR.L #.L,(xxx).W */ +{ CPUFUNC(op_ab9_0), 0, 2745 }, /* EOR.L #.L,(xxx).L */ +{ CPUFUNC(op_ad0_0), 0, 2768 }, /* CAS.B #.W,(An) */ +{ CPUFUNC(op_ad8_0), 0, 2776 }, /* CAS.B #.W,(An)+ */ +{ CPUFUNC(op_ae0_0), 0, 2784 }, /* CAS.B #.W,-(An) */ +{ CPUFUNC(op_ae8_0), 0, 2792 }, /* CAS.B #.W,(d16,An) */ +{ CPUFUNC(op_af0_0), 0, 2800 }, /* CAS.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_af8_0), 0, 2808 }, /* CAS.B #.W,(xxx).W */ +{ CPUFUNC(op_af9_0), 0, 2809 }, /* CAS.B #.W,(xxx).L */ +{ CPUFUNC(op_c00_0), 0, 3072 }, /* CMP.B #.B,Dn */ +{ CPUFUNC(op_c10_0), 0, 3088 }, /* CMP.B #.B,(An) */ +{ CPUFUNC(op_c18_0), 0, 3096 }, /* CMP.B #.B,(An)+ */ +{ CPUFUNC(op_c20_0), 0, 3104 }, /* CMP.B #.B,-(An) */ +{ CPUFUNC(op_c28_0), 0, 3112 }, /* CMP.B #.B,(d16,An) */ +{ CPUFUNC(op_c30_0), 0, 3120 }, /* CMP.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_c38_0), 0, 3128 }, /* CMP.B #.B,(xxx).W */ +{ CPUFUNC(op_c39_0), 0, 3129 }, /* CMP.B #.B,(xxx).L */ +{ CPUFUNC(op_c3a_0), 0, 3130 }, /* CMP.B #.B,(d16,PC) */ +{ CPUFUNC(op_c3b_0), 0, 3131 }, /* CMP.B #.B,(d8,PC,Xn) */ +{ CPUFUNC(op_c40_0), 0, 3136 }, /* CMP.W #.W,Dn */ +{ CPUFUNC(op_c50_0), 0, 3152 }, /* CMP.W #.W,(An) */ +{ CPUFUNC(op_c58_0), 0, 3160 }, /* CMP.W #.W,(An)+ */ +{ CPUFUNC(op_c60_0), 0, 3168 }, /* CMP.W #.W,-(An) */ +{ CPUFUNC(op_c68_0), 0, 3176 }, /* CMP.W #.W,(d16,An) */ +{ CPUFUNC(op_c70_0), 0, 3184 }, /* CMP.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_c78_0), 0, 3192 }, /* CMP.W #.W,(xxx).W */ +{ CPUFUNC(op_c79_0), 0, 3193 }, /* CMP.W #.W,(xxx).L */ +{ CPUFUNC(op_c7a_0), 0, 3194 }, /* CMP.W #.W,(d16,PC) */ +{ CPUFUNC(op_c7b_0), 0, 3195 }, /* CMP.W #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_c80_0), 0, 3200 }, /* CMP.L #.L,Dn */ +{ CPUFUNC(op_c90_0), 0, 3216 }, /* CMP.L #.L,(An) */ +{ CPUFUNC(op_c98_0), 0, 3224 }, /* CMP.L #.L,(An)+ */ +{ CPUFUNC(op_ca0_0), 0, 3232 }, /* CMP.L #.L,-(An) */ +{ CPUFUNC(op_ca8_0), 0, 3240 }, /* CMP.L #.L,(d16,An) */ +{ CPUFUNC(op_cb0_0), 0, 3248 }, /* CMP.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_cb8_0), 0, 3256 }, /* CMP.L #.L,(xxx).W */ +{ CPUFUNC(op_cb9_0), 0, 3257 }, /* CMP.L #.L,(xxx).L */ +{ CPUFUNC(op_cba_0), 0, 3258 }, /* CMP.L #.L,(d16,PC) */ +{ CPUFUNC(op_cbb_0), 0, 3259 }, /* CMP.L #.L,(d8,PC,Xn) */ +{ CPUFUNC(op_cd0_0), 0, 3280 }, /* CAS.W #.W,(An) */ +{ CPUFUNC(op_cd8_0), 0, 3288 }, /* CAS.W #.W,(An)+ */ +{ CPUFUNC(op_ce0_0), 0, 3296 }, /* CAS.W #.W,-(An) */ +{ CPUFUNC(op_ce8_0), 0, 3304 }, /* CAS.W #.W,(d16,An) */ +{ CPUFUNC(op_cf0_0), 0, 3312 }, /* CAS.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_cf8_0), 0, 3320 }, /* CAS.W #.W,(xxx).W */ +{ CPUFUNC(op_cf9_0), 0, 3321 }, /* CAS.W #.W,(xxx).L */ +{ CPUFUNC(op_cfc_0), 0, 3324 }, /* CAS2.W #.L */ +{ CPUFUNC_FF(op_e10_0), 0, 3600 }, /* MOVES.B #.W,(An) */ +{ CPUFUNC_FF(op_e18_0), 0, 3608 }, /* MOVES.B #.W,(An)+ */ +{ CPUFUNC_FF(op_e20_0), 0, 3616 }, /* MOVES.B #.W,-(An) */ +{ CPUFUNC_FF(op_e28_0), 0, 3624 }, /* MOVES.B #.W,(d16,An) */ +{ CPUFUNC_FF(op_e30_0), 0, 3632 }, /* MOVES.B #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_e38_0), 0, 3640 }, /* MOVES.B #.W,(xxx).W */ +{ CPUFUNC_FF(op_e39_0), 0, 3641 }, /* MOVES.B #.W,(xxx).L */ +{ CPUFUNC_FF(op_e50_0), 0, 3664 }, /* MOVES.W #.W,(An) */ +{ CPUFUNC_FF(op_e58_0), 0, 3672 }, /* MOVES.W #.W,(An)+ */ +{ CPUFUNC_FF(op_e60_0), 0, 3680 }, /* MOVES.W #.W,-(An) */ +{ CPUFUNC_FF(op_e68_0), 0, 3688 }, /* MOVES.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_e70_0), 0, 3696 }, /* MOVES.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_e78_0), 0, 3704 }, /* MOVES.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_e79_0), 0, 3705 }, /* MOVES.W #.W,(xxx).L */ +{ CPUFUNC_FF(op_e90_0), 0, 3728 }, /* MOVES.L #.W,(An) */ +{ CPUFUNC_FF(op_e98_0), 0, 3736 }, /* MOVES.L #.W,(An)+ */ +{ CPUFUNC_FF(op_ea0_0), 0, 3744 }, /* MOVES.L #.W,-(An) */ +{ CPUFUNC_FF(op_ea8_0), 0, 3752 }, /* MOVES.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_eb0_0), 0, 3760 }, /* MOVES.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_eb8_0), 0, 3768 }, /* MOVES.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_eb9_0), 0, 3769 }, /* MOVES.L #.W,(xxx).L */ +{ CPUFUNC(op_ed0_0), 0, 3792 }, /* CAS.L #.W,(An) */ +{ CPUFUNC(op_ed8_0), 0, 3800 }, /* CAS.L #.W,(An)+ */ +{ CPUFUNC(op_ee0_0), 0, 3808 }, /* CAS.L #.W,-(An) */ +{ CPUFUNC(op_ee8_0), 0, 3816 }, /* CAS.L #.W,(d16,An) */ +{ CPUFUNC(op_ef0_0), 0, 3824 }, /* CAS.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_ef8_0), 0, 3832 }, /* CAS.L #.W,(xxx).W */ +{ CPUFUNC(op_ef9_0), 0, 3833 }, /* CAS.L #.W,(xxx).L */ +{ CPUFUNC(op_efc_0), 0, 3836 }, /* CAS2.L #.L */ +{ CPUFUNC(op_1000_0), 0, 4096 }, /* MOVE.B Dn,Dn */ +{ CPUFUNC(op_1010_0), 0, 4112 }, /* MOVE.B (An),Dn */ +{ CPUFUNC(op_1018_0), 0, 4120 }, /* MOVE.B (An)+,Dn */ +{ CPUFUNC(op_1020_0), 0, 4128 }, /* MOVE.B -(An),Dn */ +{ CPUFUNC(op_1028_0), 0, 4136 }, /* MOVE.B (d16,An),Dn */ +{ CPUFUNC(op_1030_0), 0, 4144 }, /* MOVE.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_1038_0), 0, 4152 }, /* MOVE.B (xxx).W,Dn */ +{ CPUFUNC(op_1039_0), 0, 4153 }, /* MOVE.B (xxx).L,Dn */ +{ CPUFUNC(op_103a_0), 0, 4154 }, /* MOVE.B (d16,PC),Dn */ +{ CPUFUNC(op_103b_0), 0, 4155 }, /* MOVE.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_103c_0), 0, 4156 }, /* MOVE.B #.B,Dn */ +{ CPUFUNC(op_1080_0), 0, 4224 }, /* MOVE.B Dn,(An) */ +{ CPUFUNC(op_1090_0), 0, 4240 }, /* MOVE.B (An),(An) */ +{ CPUFUNC(op_1098_0), 0, 4248 }, /* MOVE.B (An)+,(An) */ +{ CPUFUNC(op_10a0_0), 0, 4256 }, /* MOVE.B -(An),(An) */ +{ CPUFUNC(op_10a8_0), 0, 4264 }, /* MOVE.B (d16,An),(An) */ +{ CPUFUNC(op_10b0_0), 0, 4272 }, /* MOVE.B (d8,An,Xn),(An) */ +{ CPUFUNC(op_10b8_0), 0, 4280 }, /* MOVE.B (xxx).W,(An) */ +{ CPUFUNC(op_10b9_0), 0, 4281 }, /* MOVE.B (xxx).L,(An) */ +{ CPUFUNC(op_10ba_0), 0, 4282 }, /* MOVE.B (d16,PC),(An) */ +{ CPUFUNC(op_10bb_0), 0, 4283 }, /* MOVE.B (d8,PC,Xn),(An) */ +{ CPUFUNC(op_10bc_0), 0, 4284 }, /* MOVE.B #.B,(An) */ +{ CPUFUNC(op_10c0_0), 0, 4288 }, /* MOVE.B Dn,(An)+ */ +{ CPUFUNC(op_10d0_0), 0, 4304 }, /* MOVE.B (An),(An)+ */ +{ CPUFUNC(op_10d8_0), 0, 4312 }, /* MOVE.B (An)+,(An)+ */ +{ CPUFUNC(op_10e0_0), 0, 4320 }, /* MOVE.B -(An),(An)+ */ +{ CPUFUNC(op_10e8_0), 0, 4328 }, /* MOVE.B (d16,An),(An)+ */ +{ CPUFUNC(op_10f0_0), 0, 4336 }, /* MOVE.B (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_10f8_0), 0, 4344 }, /* MOVE.B (xxx).W,(An)+ */ +{ CPUFUNC(op_10f9_0), 0, 4345 }, /* MOVE.B (xxx).L,(An)+ */ +{ CPUFUNC(op_10fa_0), 0, 4346 }, /* MOVE.B (d16,PC),(An)+ */ +{ CPUFUNC(op_10fb_0), 0, 4347 }, /* MOVE.B (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_10fc_0), 0, 4348 }, /* MOVE.B #.B,(An)+ */ +{ CPUFUNC(op_1100_0), 0, 4352 }, /* MOVE.B Dn,-(An) */ +{ CPUFUNC(op_1110_0), 0, 4368 }, /* MOVE.B (An),-(An) */ +{ CPUFUNC(op_1118_0), 0, 4376 }, /* MOVE.B (An)+,-(An) */ +{ CPUFUNC(op_1120_0), 0, 4384 }, /* MOVE.B -(An),-(An) */ +{ CPUFUNC(op_1128_0), 0, 4392 }, /* MOVE.B (d16,An),-(An) */ +{ CPUFUNC(op_1130_0), 0, 4400 }, /* MOVE.B (d8,An,Xn),-(An) */ +{ CPUFUNC(op_1138_0), 0, 4408 }, /* MOVE.B (xxx).W,-(An) */ +{ CPUFUNC(op_1139_0), 0, 4409 }, /* MOVE.B (xxx).L,-(An) */ +{ CPUFUNC(op_113a_0), 0, 4410 }, /* MOVE.B (d16,PC),-(An) */ +{ CPUFUNC(op_113b_0), 0, 4411 }, /* MOVE.B (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_113c_0), 0, 4412 }, /* MOVE.B #.B,-(An) */ +{ CPUFUNC(op_1140_0), 0, 4416 }, /* MOVE.B Dn,(d16,An) */ +{ CPUFUNC(op_1150_0), 0, 4432 }, /* MOVE.B (An),(d16,An) */ +{ CPUFUNC(op_1158_0), 0, 4440 }, /* MOVE.B (An)+,(d16,An) */ +{ CPUFUNC(op_1160_0), 0, 4448 }, /* MOVE.B -(An),(d16,An) */ +{ CPUFUNC(op_1168_0), 0, 4456 }, /* MOVE.B (d16,An),(d16,An) */ +{ CPUFUNC(op_1170_0), 0, 4464 }, /* MOVE.B (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_1178_0), 0, 4472 }, /* MOVE.B (xxx).W,(d16,An) */ +{ CPUFUNC(op_1179_0), 0, 4473 }, /* MOVE.B (xxx).L,(d16,An) */ +{ CPUFUNC(op_117a_0), 0, 4474 }, /* MOVE.B (d16,PC),(d16,An) */ +{ CPUFUNC(op_117b_0), 0, 4475 }, /* MOVE.B (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_117c_0), 0, 4476 }, /* MOVE.B #.B,(d16,An) */ +{ CPUFUNC(op_1180_0), 0, 4480 }, /* MOVE.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1190_0), 0, 4496 }, /* MOVE.B (An),(d8,An,Xn) */ +{ CPUFUNC(op_1198_0), 0, 4504 }, /* MOVE.B (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_11a0_0), 0, 4512 }, /* MOVE.B -(An),(d8,An,Xn) */ +{ CPUFUNC(op_11a8_0), 0, 4520 }, /* MOVE.B (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_11b0_0), 0, 4528 }, /* MOVE.B (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_11b8_0), 0, 4536 }, /* MOVE.B (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_11b9_0), 0, 4537 }, /* MOVE.B (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_11ba_0), 0, 4538 }, /* MOVE.B (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_11bb_0), 0, 4539 }, /* MOVE.B (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_11bc_0), 0, 4540 }, /* MOVE.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_11c0_0), 0, 4544 }, /* MOVE.B Dn,(xxx).W */ +{ CPUFUNC(op_11d0_0), 0, 4560 }, /* MOVE.B (An),(xxx).W */ +{ CPUFUNC(op_11d8_0), 0, 4568 }, /* MOVE.B (An)+,(xxx).W */ +{ CPUFUNC(op_11e0_0), 0, 4576 }, /* MOVE.B -(An),(xxx).W */ +{ CPUFUNC(op_11e8_0), 0, 4584 }, /* MOVE.B (d16,An),(xxx).W */ +{ CPUFUNC(op_11f0_0), 0, 4592 }, /* MOVE.B (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_11f8_0), 0, 4600 }, /* MOVE.B (xxx).W,(xxx).W */ +{ CPUFUNC(op_11f9_0), 0, 4601 }, /* MOVE.B (xxx).L,(xxx).W */ +{ CPUFUNC(op_11fa_0), 0, 4602 }, /* MOVE.B (d16,PC),(xxx).W */ +{ CPUFUNC(op_11fb_0), 0, 4603 }, /* MOVE.B (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_11fc_0), 0, 4604 }, /* MOVE.B #.B,(xxx).W */ +{ CPUFUNC(op_13c0_0), 0, 5056 }, /* MOVE.B Dn,(xxx).L */ +{ CPUFUNC(op_13d0_0), 0, 5072 }, /* MOVE.B (An),(xxx).L */ +{ CPUFUNC(op_13d8_0), 0, 5080 }, /* MOVE.B (An)+,(xxx).L */ +{ CPUFUNC(op_13e0_0), 0, 5088 }, /* MOVE.B -(An),(xxx).L */ +{ CPUFUNC(op_13e8_0), 0, 5096 }, /* MOVE.B (d16,An),(xxx).L */ +{ CPUFUNC(op_13f0_0), 0, 5104 }, /* MOVE.B (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_13f8_0), 0, 5112 }, /* MOVE.B (xxx).W,(xxx).L */ +{ CPUFUNC(op_13f9_0), 0, 5113 }, /* MOVE.B (xxx).L,(xxx).L */ +{ CPUFUNC(op_13fa_0), 0, 5114 }, /* MOVE.B (d16,PC),(xxx).L */ +{ CPUFUNC(op_13fb_0), 0, 5115 }, /* MOVE.B (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_13fc_0), 0, 5116 }, /* MOVE.B #.B,(xxx).L */ +{ CPUFUNC(op_2000_0), 0, 8192 }, /* MOVE.L Dn,Dn */ +{ CPUFUNC(op_2008_0), 0, 8200 }, /* MOVE.L An,Dn */ +{ CPUFUNC(op_2010_0), 0, 8208 }, /* MOVE.L (An),Dn */ +{ CPUFUNC(op_2018_0), 0, 8216 }, /* MOVE.L (An)+,Dn */ +{ CPUFUNC(op_2020_0), 0, 8224 }, /* MOVE.L -(An),Dn */ +{ CPUFUNC(op_2028_0), 0, 8232 }, /* MOVE.L (d16,An),Dn */ +{ CPUFUNC(op_2030_0), 0, 8240 }, /* MOVE.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_2038_0), 0, 8248 }, /* MOVE.L (xxx).W,Dn */ +{ CPUFUNC(op_2039_0), 0, 8249 }, /* MOVE.L (xxx).L,Dn */ +{ CPUFUNC(op_203a_0), 0, 8250 }, /* MOVE.L (d16,PC),Dn */ +{ CPUFUNC(op_203b_0), 0, 8251 }, /* MOVE.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_203c_0), 0, 8252 }, /* MOVE.L #.L,Dn */ +{ CPUFUNC_FF(op_2040_0), 0, 8256 }, /* MOVEA.L Dn,An */ +{ CPUFUNC_FF(op_2048_0), 0, 8264 }, /* MOVEA.L An,An */ +{ CPUFUNC_FF(op_2050_0), 0, 8272 }, /* MOVEA.L (An),An */ +{ CPUFUNC_FF(op_2058_0), 0, 8280 }, /* MOVEA.L (An)+,An */ +{ CPUFUNC_FF(op_2060_0), 0, 8288 }, /* MOVEA.L -(An),An */ +{ CPUFUNC_FF(op_2068_0), 0, 8296 }, /* MOVEA.L (d16,An),An */ +{ CPUFUNC_FF(op_2070_0), 0, 8304 }, /* MOVEA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_2078_0), 0, 8312 }, /* MOVEA.L (xxx).W,An */ +{ CPUFUNC_FF(op_2079_0), 0, 8313 }, /* MOVEA.L (xxx).L,An */ +{ CPUFUNC_FF(op_207a_0), 0, 8314 }, /* MOVEA.L (d16,PC),An */ +{ CPUFUNC_FF(op_207b_0), 0, 8315 }, /* MOVEA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_207c_0), 0, 8316 }, /* MOVEA.L #.L,An */ +{ CPUFUNC(op_2080_0), 0, 8320 }, /* MOVE.L Dn,(An) */ +{ CPUFUNC(op_2088_0), 0, 8328 }, /* MOVE.L An,(An) */ +{ CPUFUNC(op_2090_0), 0, 8336 }, /* MOVE.L (An),(An) */ +{ CPUFUNC(op_2098_0), 0, 8344 }, /* MOVE.L (An)+,(An) */ +{ CPUFUNC(op_20a0_0), 0, 8352 }, /* MOVE.L -(An),(An) */ +{ CPUFUNC(op_20a8_0), 0, 8360 }, /* MOVE.L (d16,An),(An) */ +{ CPUFUNC(op_20b0_0), 0, 8368 }, /* MOVE.L (d8,An,Xn),(An) */ +{ CPUFUNC(op_20b8_0), 0, 8376 }, /* MOVE.L (xxx).W,(An) */ +{ CPUFUNC(op_20b9_0), 0, 8377 }, /* MOVE.L (xxx).L,(An) */ +{ CPUFUNC(op_20ba_0), 0, 8378 }, /* MOVE.L (d16,PC),(An) */ +{ CPUFUNC(op_20bb_0), 0, 8379 }, /* MOVE.L (d8,PC,Xn),(An) */ +{ CPUFUNC(op_20bc_0), 0, 8380 }, /* MOVE.L #.L,(An) */ +{ CPUFUNC(op_20c0_0), 0, 8384 }, /* MOVE.L Dn,(An)+ */ +{ CPUFUNC(op_20c8_0), 0, 8392 }, /* MOVE.L An,(An)+ */ +{ CPUFUNC(op_20d0_0), 0, 8400 }, /* MOVE.L (An),(An)+ */ +{ CPUFUNC(op_20d8_0), 0, 8408 }, /* MOVE.L (An)+,(An)+ */ +{ CPUFUNC(op_20e0_0), 0, 8416 }, /* MOVE.L -(An),(An)+ */ +{ CPUFUNC(op_20e8_0), 0, 8424 }, /* MOVE.L (d16,An),(An)+ */ +{ CPUFUNC(op_20f0_0), 0, 8432 }, /* MOVE.L (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_20f8_0), 0, 8440 }, /* MOVE.L (xxx).W,(An)+ */ +{ CPUFUNC(op_20f9_0), 0, 8441 }, /* MOVE.L (xxx).L,(An)+ */ +{ CPUFUNC(op_20fa_0), 0, 8442 }, /* MOVE.L (d16,PC),(An)+ */ +{ CPUFUNC(op_20fb_0), 0, 8443 }, /* MOVE.L (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_20fc_0), 0, 8444 }, /* MOVE.L #.L,(An)+ */ +{ CPUFUNC(op_2100_0), 0, 8448 }, /* MOVE.L Dn,-(An) */ +{ CPUFUNC(op_2108_0), 0, 8456 }, /* MOVE.L An,-(An) */ +{ CPUFUNC(op_2110_0), 0, 8464 }, /* MOVE.L (An),-(An) */ +{ CPUFUNC(op_2118_0), 0, 8472 }, /* MOVE.L (An)+,-(An) */ +{ CPUFUNC(op_2120_0), 0, 8480 }, /* MOVE.L -(An),-(An) */ +{ CPUFUNC(op_2128_0), 0, 8488 }, /* MOVE.L (d16,An),-(An) */ +{ CPUFUNC(op_2130_0), 0, 8496 }, /* MOVE.L (d8,An,Xn),-(An) */ +{ CPUFUNC(op_2138_0), 0, 8504 }, /* MOVE.L (xxx).W,-(An) */ +{ CPUFUNC(op_2139_0), 0, 8505 }, /* MOVE.L (xxx).L,-(An) */ +{ CPUFUNC(op_213a_0), 0, 8506 }, /* MOVE.L (d16,PC),-(An) */ +{ CPUFUNC(op_213b_0), 0, 8507 }, /* MOVE.L (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_213c_0), 0, 8508 }, /* MOVE.L #.L,-(An) */ +{ CPUFUNC(op_2140_0), 0, 8512 }, /* MOVE.L Dn,(d16,An) */ +{ CPUFUNC(op_2148_0), 0, 8520 }, /* MOVE.L An,(d16,An) */ +{ CPUFUNC(op_2150_0), 0, 8528 }, /* MOVE.L (An),(d16,An) */ +{ CPUFUNC(op_2158_0), 0, 8536 }, /* MOVE.L (An)+,(d16,An) */ +{ CPUFUNC(op_2160_0), 0, 8544 }, /* MOVE.L -(An),(d16,An) */ +{ CPUFUNC(op_2168_0), 0, 8552 }, /* MOVE.L (d16,An),(d16,An) */ +{ CPUFUNC(op_2170_0), 0, 8560 }, /* MOVE.L (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_2178_0), 0, 8568 }, /* MOVE.L (xxx).W,(d16,An) */ +{ CPUFUNC(op_2179_0), 0, 8569 }, /* MOVE.L (xxx).L,(d16,An) */ +{ CPUFUNC(op_217a_0), 0, 8570 }, /* MOVE.L (d16,PC),(d16,An) */ +{ CPUFUNC(op_217b_0), 0, 8571 }, /* MOVE.L (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_217c_0), 0, 8572 }, /* MOVE.L #.L,(d16,An) */ +{ CPUFUNC(op_2180_0), 0, 8576 }, /* MOVE.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_2188_0), 0, 8584 }, /* MOVE.L An,(d8,An,Xn) */ +{ CPUFUNC(op_2190_0), 0, 8592 }, /* MOVE.L (An),(d8,An,Xn) */ +{ CPUFUNC(op_2198_0), 0, 8600 }, /* MOVE.L (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_21a0_0), 0, 8608 }, /* MOVE.L -(An),(d8,An,Xn) */ +{ CPUFUNC(op_21a8_0), 0, 8616 }, /* MOVE.L (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_21b0_0), 0, 8624 }, /* MOVE.L (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_21b8_0), 0, 8632 }, /* MOVE.L (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_21b9_0), 0, 8633 }, /* MOVE.L (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_21ba_0), 0, 8634 }, /* MOVE.L (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_21bb_0), 0, 8635 }, /* MOVE.L (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_21bc_0), 0, 8636 }, /* MOVE.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_21c0_0), 0, 8640 }, /* MOVE.L Dn,(xxx).W */ +{ CPUFUNC(op_21c8_0), 0, 8648 }, /* MOVE.L An,(xxx).W */ +{ CPUFUNC(op_21d0_0), 0, 8656 }, /* MOVE.L (An),(xxx).W */ +{ CPUFUNC(op_21d8_0), 0, 8664 }, /* MOVE.L (An)+,(xxx).W */ +{ CPUFUNC(op_21e0_0), 0, 8672 }, /* MOVE.L -(An),(xxx).W */ +{ CPUFUNC(op_21e8_0), 0, 8680 }, /* MOVE.L (d16,An),(xxx).W */ +{ CPUFUNC(op_21f0_0), 0, 8688 }, /* MOVE.L (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_21f8_0), 0, 8696 }, /* MOVE.L (xxx).W,(xxx).W */ +{ CPUFUNC(op_21f9_0), 0, 8697 }, /* MOVE.L (xxx).L,(xxx).W */ +{ CPUFUNC(op_21fa_0), 0, 8698 }, /* MOVE.L (d16,PC),(xxx).W */ +{ CPUFUNC(op_21fb_0), 0, 8699 }, /* MOVE.L (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_21fc_0), 0, 8700 }, /* MOVE.L #.L,(xxx).W */ +{ CPUFUNC(op_23c0_0), 0, 9152 }, /* MOVE.L Dn,(xxx).L */ +{ CPUFUNC(op_23c8_0), 0, 9160 }, /* MOVE.L An,(xxx).L */ +{ CPUFUNC(op_23d0_0), 0, 9168 }, /* MOVE.L (An),(xxx).L */ +{ CPUFUNC(op_23d8_0), 0, 9176 }, /* MOVE.L (An)+,(xxx).L */ +{ CPUFUNC(op_23e0_0), 0, 9184 }, /* MOVE.L -(An),(xxx).L */ +{ CPUFUNC(op_23e8_0), 0, 9192 }, /* MOVE.L (d16,An),(xxx).L */ +{ CPUFUNC(op_23f0_0), 0, 9200 }, /* MOVE.L (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_23f8_0), 0, 9208 }, /* MOVE.L (xxx).W,(xxx).L */ +{ CPUFUNC(op_23f9_0), 0, 9209 }, /* MOVE.L (xxx).L,(xxx).L */ +{ CPUFUNC(op_23fa_0), 0, 9210 }, /* MOVE.L (d16,PC),(xxx).L */ +{ CPUFUNC(op_23fb_0), 0, 9211 }, /* MOVE.L (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_23fc_0), 0, 9212 }, /* MOVE.L #.L,(xxx).L */ +{ CPUFUNC(op_3000_0), 0, 12288 }, /* MOVE.W Dn,Dn */ +{ CPUFUNC(op_3008_0), 0, 12296 }, /* MOVE.W An,Dn */ +{ CPUFUNC(op_3010_0), 0, 12304 }, /* MOVE.W (An),Dn */ +{ CPUFUNC(op_3018_0), 0, 12312 }, /* MOVE.W (An)+,Dn */ +{ CPUFUNC(op_3020_0), 0, 12320 }, /* MOVE.W -(An),Dn */ +{ CPUFUNC(op_3028_0), 0, 12328 }, /* MOVE.W (d16,An),Dn */ +{ CPUFUNC(op_3030_0), 0, 12336 }, /* MOVE.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_3038_0), 0, 12344 }, /* MOVE.W (xxx).W,Dn */ +{ CPUFUNC(op_3039_0), 0, 12345 }, /* MOVE.W (xxx).L,Dn */ +{ CPUFUNC(op_303a_0), 0, 12346 }, /* MOVE.W (d16,PC),Dn */ +{ CPUFUNC(op_303b_0), 0, 12347 }, /* MOVE.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_303c_0), 0, 12348 }, /* MOVE.W #.W,Dn */ +{ CPUFUNC_FF(op_3040_0), 0, 12352 }, /* MOVEA.W Dn,An */ +{ CPUFUNC_FF(op_3048_0), 0, 12360 }, /* MOVEA.W An,An */ +{ CPUFUNC_FF(op_3050_0), 0, 12368 }, /* MOVEA.W (An),An */ +{ CPUFUNC_FF(op_3058_0), 0, 12376 }, /* MOVEA.W (An)+,An */ +{ CPUFUNC_FF(op_3060_0), 0, 12384 }, /* MOVEA.W -(An),An */ +{ CPUFUNC_FF(op_3068_0), 0, 12392 }, /* MOVEA.W (d16,An),An */ +{ CPUFUNC_FF(op_3070_0), 0, 12400 }, /* MOVEA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_3078_0), 0, 12408 }, /* MOVEA.W (xxx).W,An */ +{ CPUFUNC_FF(op_3079_0), 0, 12409 }, /* MOVEA.W (xxx).L,An */ +{ CPUFUNC_FF(op_307a_0), 0, 12410 }, /* MOVEA.W (d16,PC),An */ +{ CPUFUNC_FF(op_307b_0), 0, 12411 }, /* MOVEA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_307c_0), 0, 12412 }, /* MOVEA.W #.W,An */ +{ CPUFUNC(op_3080_0), 0, 12416 }, /* MOVE.W Dn,(An) */ +{ CPUFUNC(op_3088_0), 0, 12424 }, /* MOVE.W An,(An) */ +{ CPUFUNC(op_3090_0), 0, 12432 }, /* MOVE.W (An),(An) */ +{ CPUFUNC(op_3098_0), 0, 12440 }, /* MOVE.W (An)+,(An) */ +{ CPUFUNC(op_30a0_0), 0, 12448 }, /* MOVE.W -(An),(An) */ +{ CPUFUNC(op_30a8_0), 0, 12456 }, /* MOVE.W (d16,An),(An) */ +{ CPUFUNC(op_30b0_0), 0, 12464 }, /* MOVE.W (d8,An,Xn),(An) */ +{ CPUFUNC(op_30b8_0), 0, 12472 }, /* MOVE.W (xxx).W,(An) */ +{ CPUFUNC(op_30b9_0), 0, 12473 }, /* MOVE.W (xxx).L,(An) */ +{ CPUFUNC(op_30ba_0), 0, 12474 }, /* MOVE.W (d16,PC),(An) */ +{ CPUFUNC(op_30bb_0), 0, 12475 }, /* MOVE.W (d8,PC,Xn),(An) */ +{ CPUFUNC(op_30bc_0), 0, 12476 }, /* MOVE.W #.W,(An) */ +{ CPUFUNC(op_30c0_0), 0, 12480 }, /* MOVE.W Dn,(An)+ */ +{ CPUFUNC(op_30c8_0), 0, 12488 }, /* MOVE.W An,(An)+ */ +{ CPUFUNC(op_30d0_0), 0, 12496 }, /* MOVE.W (An),(An)+ */ +{ CPUFUNC(op_30d8_0), 0, 12504 }, /* MOVE.W (An)+,(An)+ */ +{ CPUFUNC(op_30e0_0), 0, 12512 }, /* MOVE.W -(An),(An)+ */ +{ CPUFUNC(op_30e8_0), 0, 12520 }, /* MOVE.W (d16,An),(An)+ */ +{ CPUFUNC(op_30f0_0), 0, 12528 }, /* MOVE.W (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_30f8_0), 0, 12536 }, /* MOVE.W (xxx).W,(An)+ */ +{ CPUFUNC(op_30f9_0), 0, 12537 }, /* MOVE.W (xxx).L,(An)+ */ +{ CPUFUNC(op_30fa_0), 0, 12538 }, /* MOVE.W (d16,PC),(An)+ */ +{ CPUFUNC(op_30fb_0), 0, 12539 }, /* MOVE.W (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_30fc_0), 0, 12540 }, /* MOVE.W #.W,(An)+ */ +{ CPUFUNC(op_3100_0), 0, 12544 }, /* MOVE.W Dn,-(An) */ +{ CPUFUNC(op_3108_0), 0, 12552 }, /* MOVE.W An,-(An) */ +{ CPUFUNC(op_3110_0), 0, 12560 }, /* MOVE.W (An),-(An) */ +{ CPUFUNC(op_3118_0), 0, 12568 }, /* MOVE.W (An)+,-(An) */ +{ CPUFUNC(op_3120_0), 0, 12576 }, /* MOVE.W -(An),-(An) */ +{ CPUFUNC(op_3128_0), 0, 12584 }, /* MOVE.W (d16,An),-(An) */ +{ CPUFUNC(op_3130_0), 0, 12592 }, /* MOVE.W (d8,An,Xn),-(An) */ +{ CPUFUNC(op_3138_0), 0, 12600 }, /* MOVE.W (xxx).W,-(An) */ +{ CPUFUNC(op_3139_0), 0, 12601 }, /* MOVE.W (xxx).L,-(An) */ +{ CPUFUNC(op_313a_0), 0, 12602 }, /* MOVE.W (d16,PC),-(An) */ +{ CPUFUNC(op_313b_0), 0, 12603 }, /* MOVE.W (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_313c_0), 0, 12604 }, /* MOVE.W #.W,-(An) */ +{ CPUFUNC(op_3140_0), 0, 12608 }, /* MOVE.W Dn,(d16,An) */ +{ CPUFUNC(op_3148_0), 0, 12616 }, /* MOVE.W An,(d16,An) */ +{ CPUFUNC(op_3150_0), 0, 12624 }, /* MOVE.W (An),(d16,An) */ +{ CPUFUNC(op_3158_0), 0, 12632 }, /* MOVE.W (An)+,(d16,An) */ +{ CPUFUNC(op_3160_0), 0, 12640 }, /* MOVE.W -(An),(d16,An) */ +{ CPUFUNC(op_3168_0), 0, 12648 }, /* MOVE.W (d16,An),(d16,An) */ +{ CPUFUNC(op_3170_0), 0, 12656 }, /* MOVE.W (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_3178_0), 0, 12664 }, /* MOVE.W (xxx).W,(d16,An) */ +{ CPUFUNC(op_3179_0), 0, 12665 }, /* MOVE.W (xxx).L,(d16,An) */ +{ CPUFUNC(op_317a_0), 0, 12666 }, /* MOVE.W (d16,PC),(d16,An) */ +{ CPUFUNC(op_317b_0), 0, 12667 }, /* MOVE.W (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_317c_0), 0, 12668 }, /* MOVE.W #.W,(d16,An) */ +{ CPUFUNC(op_3180_0), 0, 12672 }, /* MOVE.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_3188_0), 0, 12680 }, /* MOVE.W An,(d8,An,Xn) */ +{ CPUFUNC(op_3190_0), 0, 12688 }, /* MOVE.W (An),(d8,An,Xn) */ +{ CPUFUNC(op_3198_0), 0, 12696 }, /* MOVE.W (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_31a0_0), 0, 12704 }, /* MOVE.W -(An),(d8,An,Xn) */ +{ CPUFUNC(op_31a8_0), 0, 12712 }, /* MOVE.W (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_31b0_0), 0, 12720 }, /* MOVE.W (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_31b8_0), 0, 12728 }, /* MOVE.W (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_31b9_0), 0, 12729 }, /* MOVE.W (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_31ba_0), 0, 12730 }, /* MOVE.W (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_31bb_0), 0, 12731 }, /* MOVE.W (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_31bc_0), 0, 12732 }, /* MOVE.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_31c0_0), 0, 12736 }, /* MOVE.W Dn,(xxx).W */ +{ CPUFUNC(op_31c8_0), 0, 12744 }, /* MOVE.W An,(xxx).W */ +{ CPUFUNC(op_31d0_0), 0, 12752 }, /* MOVE.W (An),(xxx).W */ +{ CPUFUNC(op_31d8_0), 0, 12760 }, /* MOVE.W (An)+,(xxx).W */ +{ CPUFUNC(op_31e0_0), 0, 12768 }, /* MOVE.W -(An),(xxx).W */ +{ CPUFUNC(op_31e8_0), 0, 12776 }, /* MOVE.W (d16,An),(xxx).W */ +{ CPUFUNC(op_31f0_0), 0, 12784 }, /* MOVE.W (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_31f8_0), 0, 12792 }, /* MOVE.W (xxx).W,(xxx).W */ +{ CPUFUNC(op_31f9_0), 0, 12793 }, /* MOVE.W (xxx).L,(xxx).W */ +{ CPUFUNC(op_31fa_0), 0, 12794 }, /* MOVE.W (d16,PC),(xxx).W */ +{ CPUFUNC(op_31fb_0), 0, 12795 }, /* MOVE.W (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_31fc_0), 0, 12796 }, /* MOVE.W #.W,(xxx).W */ +{ CPUFUNC(op_33c0_0), 0, 13248 }, /* MOVE.W Dn,(xxx).L */ +{ CPUFUNC(op_33c8_0), 0, 13256 }, /* MOVE.W An,(xxx).L */ +{ CPUFUNC(op_33d0_0), 0, 13264 }, /* MOVE.W (An),(xxx).L */ +{ CPUFUNC(op_33d8_0), 0, 13272 }, /* MOVE.W (An)+,(xxx).L */ +{ CPUFUNC(op_33e0_0), 0, 13280 }, /* MOVE.W -(An),(xxx).L */ +{ CPUFUNC(op_33e8_0), 0, 13288 }, /* MOVE.W (d16,An),(xxx).L */ +{ CPUFUNC(op_33f0_0), 0, 13296 }, /* MOVE.W (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_33f8_0), 0, 13304 }, /* MOVE.W (xxx).W,(xxx).L */ +{ CPUFUNC(op_33f9_0), 0, 13305 }, /* MOVE.W (xxx).L,(xxx).L */ +{ CPUFUNC(op_33fa_0), 0, 13306 }, /* MOVE.W (d16,PC),(xxx).L */ +{ CPUFUNC(op_33fb_0), 0, 13307 }, /* MOVE.W (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_33fc_0), 0, 13308 }, /* MOVE.W #.W,(xxx).L */ +{ CPUFUNC(op_4000_0), 0, 16384 }, /* NEGX.B Dn */ +{ CPUFUNC(op_4010_0), 0, 16400 }, /* NEGX.B (An) */ +{ CPUFUNC(op_4018_0), 0, 16408 }, /* NEGX.B (An)+ */ +{ CPUFUNC(op_4020_0), 0, 16416 }, /* NEGX.B -(An) */ +{ CPUFUNC(op_4028_0), 0, 16424 }, /* NEGX.B (d16,An) */ +{ CPUFUNC(op_4030_0), 0, 16432 }, /* NEGX.B (d8,An,Xn) */ +{ CPUFUNC(op_4038_0), 0, 16440 }, /* NEGX.B (xxx).W */ +{ CPUFUNC(op_4039_0), 0, 16441 }, /* NEGX.B (xxx).L */ +{ CPUFUNC(op_4040_0), 0, 16448 }, /* NEGX.W Dn */ +{ CPUFUNC(op_4050_0), 0, 16464 }, /* NEGX.W (An) */ +{ CPUFUNC(op_4058_0), 0, 16472 }, /* NEGX.W (An)+ */ +{ CPUFUNC(op_4060_0), 0, 16480 }, /* NEGX.W -(An) */ +{ CPUFUNC(op_4068_0), 0, 16488 }, /* NEGX.W (d16,An) */ +{ CPUFUNC(op_4070_0), 0, 16496 }, /* NEGX.W (d8,An,Xn) */ +{ CPUFUNC(op_4078_0), 0, 16504 }, /* NEGX.W (xxx).W */ +{ CPUFUNC(op_4079_0), 0, 16505 }, /* NEGX.W (xxx).L */ +{ CPUFUNC(op_4080_0), 0, 16512 }, /* NEGX.L Dn */ +{ CPUFUNC(op_4090_0), 0, 16528 }, /* NEGX.L (An) */ +{ CPUFUNC(op_4098_0), 0, 16536 }, /* NEGX.L (An)+ */ +{ CPUFUNC(op_40a0_0), 0, 16544 }, /* NEGX.L -(An) */ +{ CPUFUNC(op_40a8_0), 0, 16552 }, /* NEGX.L (d16,An) */ +{ CPUFUNC(op_40b0_0), 0, 16560 }, /* NEGX.L (d8,An,Xn) */ +{ CPUFUNC(op_40b8_0), 0, 16568 }, /* NEGX.L (xxx).W */ +{ CPUFUNC(op_40b9_0), 0, 16569 }, /* NEGX.L (xxx).L */ +{ CPUFUNC_FF(op_40c0_0), 0, 16576 }, /* MVSR2.W Dn */ +{ CPUFUNC_FF(op_40d0_0), 0, 16592 }, /* MVSR2.W (An) */ +{ CPUFUNC_FF(op_40d8_0), 0, 16600 }, /* MVSR2.W (An)+ */ +{ CPUFUNC_FF(op_40e0_0), 0, 16608 }, /* MVSR2.W -(An) */ +{ CPUFUNC_FF(op_40e8_0), 0, 16616 }, /* MVSR2.W (d16,An) */ +{ CPUFUNC_FF(op_40f0_0), 0, 16624 }, /* MVSR2.W (d8,An,Xn) */ +{ CPUFUNC_FF(op_40f8_0), 0, 16632 }, /* MVSR2.W (xxx).W */ +{ CPUFUNC_FF(op_40f9_0), 0, 16633 }, /* MVSR2.W (xxx).L */ +{ CPUFUNC(op_4100_0), 0, 16640 }, /* CHK.L Dn,Dn */ +{ CPUFUNC(op_4110_0), 0, 16656 }, /* CHK.L (An),Dn */ +{ CPUFUNC(op_4118_0), 0, 16664 }, /* CHK.L (An)+,Dn */ +{ CPUFUNC(op_4120_0), 0, 16672 }, /* CHK.L -(An),Dn */ +{ CPUFUNC(op_4128_0), 0, 16680 }, /* CHK.L (d16,An),Dn */ +{ CPUFUNC(op_4130_0), 0, 16688 }, /* CHK.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_4138_0), 0, 16696 }, /* CHK.L (xxx).W,Dn */ +{ CPUFUNC(op_4139_0), 0, 16697 }, /* CHK.L (xxx).L,Dn */ +{ CPUFUNC(op_413a_0), 0, 16698 }, /* CHK.L (d16,PC),Dn */ +{ CPUFUNC(op_413b_0), 0, 16699 }, /* CHK.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_413c_0), 0, 16700 }, /* CHK.L #.L,Dn */ +{ CPUFUNC(op_4180_0), 0, 16768 }, /* CHK.W Dn,Dn */ +{ CPUFUNC(op_4190_0), 0, 16784 }, /* CHK.W (An),Dn */ +{ CPUFUNC(op_4198_0), 0, 16792 }, /* CHK.W (An)+,Dn */ +{ CPUFUNC(op_41a0_0), 0, 16800 }, /* CHK.W -(An),Dn */ +{ CPUFUNC(op_41a8_0), 0, 16808 }, /* CHK.W (d16,An),Dn */ +{ CPUFUNC(op_41b0_0), 0, 16816 }, /* CHK.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_41b8_0), 0, 16824 }, /* CHK.W (xxx).W,Dn */ +{ CPUFUNC(op_41b9_0), 0, 16825 }, /* CHK.W (xxx).L,Dn */ +{ CPUFUNC(op_41ba_0), 0, 16826 }, /* CHK.W (d16,PC),Dn */ +{ CPUFUNC(op_41bb_0), 0, 16827 }, /* CHK.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_41bc_0), 0, 16828 }, /* CHK.W #.W,Dn */ +{ CPUFUNC_FF(op_41d0_0), 0, 16848 }, /* LEA.L (An),An */ +{ CPUFUNC_FF(op_41e8_0), 0, 16872 }, /* LEA.L (d16,An),An */ +{ CPUFUNC_FF(op_41f0_0), 0, 16880 }, /* LEA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_41f8_0), 0, 16888 }, /* LEA.L (xxx).W,An */ +{ CPUFUNC_FF(op_41f9_0), 0, 16889 }, /* LEA.L (xxx).L,An */ +{ CPUFUNC_FF(op_41fa_0), 0, 16890 }, /* LEA.L (d16,PC),An */ +{ CPUFUNC_FF(op_41fb_0), 0, 16891 }, /* LEA.L (d8,PC,Xn),An */ +{ CPUFUNC(op_4200_0), 0, 16896 }, /* CLR.B Dn */ +{ CPUFUNC(op_4210_0), 0, 16912 }, /* CLR.B (An) */ +{ CPUFUNC(op_4218_0), 0, 16920 }, /* CLR.B (An)+ */ +{ CPUFUNC(op_4220_0), 0, 16928 }, /* CLR.B -(An) */ +{ CPUFUNC(op_4228_0), 0, 16936 }, /* CLR.B (d16,An) */ +{ CPUFUNC(op_4230_0), 0, 16944 }, /* CLR.B (d8,An,Xn) */ +{ CPUFUNC(op_4238_0), 0, 16952 }, /* CLR.B (xxx).W */ +{ CPUFUNC(op_4239_0), 0, 16953 }, /* CLR.B (xxx).L */ +{ CPUFUNC(op_4240_0), 0, 16960 }, /* CLR.W Dn */ +{ CPUFUNC(op_4250_0), 0, 16976 }, /* CLR.W (An) */ +{ CPUFUNC(op_4258_0), 0, 16984 }, /* CLR.W (An)+ */ +{ CPUFUNC(op_4260_0), 0, 16992 }, /* CLR.W -(An) */ +{ CPUFUNC(op_4268_0), 0, 17000 }, /* CLR.W (d16,An) */ +{ CPUFUNC(op_4270_0), 0, 17008 }, /* CLR.W (d8,An,Xn) */ +{ CPUFUNC(op_4278_0), 0, 17016 }, /* CLR.W (xxx).W */ +{ CPUFUNC(op_4279_0), 0, 17017 }, /* CLR.W (xxx).L */ +{ CPUFUNC(op_4280_0), 0, 17024 }, /* CLR.L Dn */ +{ CPUFUNC(op_4290_0), 0, 17040 }, /* CLR.L (An) */ +{ CPUFUNC(op_4298_0), 0, 17048 }, /* CLR.L (An)+ */ +{ CPUFUNC(op_42a0_0), 0, 17056 }, /* CLR.L -(An) */ +{ CPUFUNC(op_42a8_0), 0, 17064 }, /* CLR.L (d16,An) */ +{ CPUFUNC(op_42b0_0), 0, 17072 }, /* CLR.L (d8,An,Xn) */ +{ CPUFUNC(op_42b8_0), 0, 17080 }, /* CLR.L (xxx).W */ +{ CPUFUNC(op_42b9_0), 0, 17081 }, /* CLR.L (xxx).L */ +{ CPUFUNC_FF(op_42c0_0), 0, 17088 }, /* MVSR2.B Dn */ +{ CPUFUNC_FF(op_42d0_0), 0, 17104 }, /* MVSR2.B (An) */ +{ CPUFUNC_FF(op_42d8_0), 0, 17112 }, /* MVSR2.B (An)+ */ +{ CPUFUNC_FF(op_42e0_0), 0, 17120 }, /* MVSR2.B -(An) */ +{ CPUFUNC_FF(op_42e8_0), 0, 17128 }, /* MVSR2.B (d16,An) */ +{ CPUFUNC_FF(op_42f0_0), 0, 17136 }, /* MVSR2.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_42f8_0), 0, 17144 }, /* MVSR2.B (xxx).W */ +{ CPUFUNC_FF(op_42f9_0), 0, 17145 }, /* MVSR2.B (xxx).L */ +{ CPUFUNC(op_4400_0), 0, 17408 }, /* NEG.B Dn */ +{ CPUFUNC(op_4410_0), 0, 17424 }, /* NEG.B (An) */ +{ CPUFUNC(op_4418_0), 0, 17432 }, /* NEG.B (An)+ */ +{ CPUFUNC(op_4420_0), 0, 17440 }, /* NEG.B -(An) */ +{ CPUFUNC(op_4428_0), 0, 17448 }, /* NEG.B (d16,An) */ +{ CPUFUNC(op_4430_0), 0, 17456 }, /* NEG.B (d8,An,Xn) */ +{ CPUFUNC(op_4438_0), 0, 17464 }, /* NEG.B (xxx).W */ +{ CPUFUNC(op_4439_0), 0, 17465 }, /* NEG.B (xxx).L */ +{ CPUFUNC(op_4440_0), 0, 17472 }, /* NEG.W Dn */ +{ CPUFUNC(op_4450_0), 0, 17488 }, /* NEG.W (An) */ +{ CPUFUNC(op_4458_0), 0, 17496 }, /* NEG.W (An)+ */ +{ CPUFUNC(op_4460_0), 0, 17504 }, /* NEG.W -(An) */ +{ CPUFUNC(op_4468_0), 0, 17512 }, /* NEG.W (d16,An) */ +{ CPUFUNC(op_4470_0), 0, 17520 }, /* NEG.W (d8,An,Xn) */ +{ CPUFUNC(op_4478_0), 0, 17528 }, /* NEG.W (xxx).W */ +{ CPUFUNC(op_4479_0), 0, 17529 }, /* NEG.W (xxx).L */ +{ CPUFUNC(op_4480_0), 0, 17536 }, /* NEG.L Dn */ +{ CPUFUNC(op_4490_0), 0, 17552 }, /* NEG.L (An) */ +{ CPUFUNC(op_4498_0), 0, 17560 }, /* NEG.L (An)+ */ +{ CPUFUNC(op_44a0_0), 0, 17568 }, /* NEG.L -(An) */ +{ CPUFUNC(op_44a8_0), 0, 17576 }, /* NEG.L (d16,An) */ +{ CPUFUNC(op_44b0_0), 0, 17584 }, /* NEG.L (d8,An,Xn) */ +{ CPUFUNC(op_44b8_0), 0, 17592 }, /* NEG.L (xxx).W */ +{ CPUFUNC(op_44b9_0), 0, 17593 }, /* NEG.L (xxx).L */ +{ CPUFUNC(op_44c0_0), 0, 17600 }, /* MV2SR.B Dn */ +{ CPUFUNC(op_44d0_0), 0, 17616 }, /* MV2SR.B (An) */ +{ CPUFUNC(op_44d8_0), 0, 17624 }, /* MV2SR.B (An)+ */ +{ CPUFUNC(op_44e0_0), 0, 17632 }, /* MV2SR.B -(An) */ +{ CPUFUNC(op_44e8_0), 0, 17640 }, /* MV2SR.B (d16,An) */ +{ CPUFUNC(op_44f0_0), 0, 17648 }, /* MV2SR.B (d8,An,Xn) */ +{ CPUFUNC(op_44f8_0), 0, 17656 }, /* MV2SR.B (xxx).W */ +{ CPUFUNC(op_44f9_0), 0, 17657 }, /* MV2SR.B (xxx).L */ +{ CPUFUNC(op_44fa_0), 0, 17658 }, /* MV2SR.B (d16,PC) */ +{ CPUFUNC(op_44fb_0), 0, 17659 }, /* MV2SR.B (d8,PC,Xn) */ +{ CPUFUNC(op_44fc_0), 0, 17660 }, /* MV2SR.B #.B */ +{ CPUFUNC(op_4600_0), 0, 17920 }, /* NOT.B Dn */ +{ CPUFUNC(op_4610_0), 0, 17936 }, /* NOT.B (An) */ +{ CPUFUNC(op_4618_0), 0, 17944 }, /* NOT.B (An)+ */ +{ CPUFUNC(op_4620_0), 0, 17952 }, /* NOT.B -(An) */ +{ CPUFUNC(op_4628_0), 0, 17960 }, /* NOT.B (d16,An) */ +{ CPUFUNC(op_4630_0), 0, 17968 }, /* NOT.B (d8,An,Xn) */ +{ CPUFUNC(op_4638_0), 0, 17976 }, /* NOT.B (xxx).W */ +{ CPUFUNC(op_4639_0), 0, 17977 }, /* NOT.B (xxx).L */ +{ CPUFUNC(op_4640_0), 0, 17984 }, /* NOT.W Dn */ +{ CPUFUNC(op_4650_0), 0, 18000 }, /* NOT.W (An) */ +{ CPUFUNC(op_4658_0), 0, 18008 }, /* NOT.W (An)+ */ +{ CPUFUNC(op_4660_0), 0, 18016 }, /* NOT.W -(An) */ +{ CPUFUNC(op_4668_0), 0, 18024 }, /* NOT.W (d16,An) */ +{ CPUFUNC(op_4670_0), 0, 18032 }, /* NOT.W (d8,An,Xn) */ +{ CPUFUNC(op_4678_0), 0, 18040 }, /* NOT.W (xxx).W */ +{ CPUFUNC(op_4679_0), 0, 18041 }, /* NOT.W (xxx).L */ +{ CPUFUNC(op_4680_0), 0, 18048 }, /* NOT.L Dn */ +{ CPUFUNC(op_4690_0), 0, 18064 }, /* NOT.L (An) */ +{ CPUFUNC(op_4698_0), 0, 18072 }, /* NOT.L (An)+ */ +{ CPUFUNC(op_46a0_0), 0, 18080 }, /* NOT.L -(An) */ +{ CPUFUNC(op_46a8_0), 0, 18088 }, /* NOT.L (d16,An) */ +{ CPUFUNC(op_46b0_0), 0, 18096 }, /* NOT.L (d8,An,Xn) */ +{ CPUFUNC(op_46b8_0), 0, 18104 }, /* NOT.L (xxx).W */ +{ CPUFUNC(op_46b9_0), 0, 18105 }, /* NOT.L (xxx).L */ +{ CPUFUNC(op_46c0_0), 0, 18112 }, /* MV2SR.W Dn */ +{ CPUFUNC(op_46d0_0), 0, 18128 }, /* MV2SR.W (An) */ +{ CPUFUNC(op_46d8_0), 0, 18136 }, /* MV2SR.W (An)+ */ +{ CPUFUNC(op_46e0_0), 0, 18144 }, /* MV2SR.W -(An) */ +{ CPUFUNC(op_46e8_0), 0, 18152 }, /* MV2SR.W (d16,An) */ +{ CPUFUNC(op_46f0_0), 0, 18160 }, /* MV2SR.W (d8,An,Xn) */ +{ CPUFUNC(op_46f8_0), 0, 18168 }, /* MV2SR.W (xxx).W */ +{ CPUFUNC(op_46f9_0), 0, 18169 }, /* MV2SR.W (xxx).L */ +{ CPUFUNC(op_46fa_0), 0, 18170 }, /* MV2SR.W (d16,PC) */ +{ CPUFUNC(op_46fb_0), 0, 18171 }, /* MV2SR.W (d8,PC,Xn) */ +{ CPUFUNC(op_46fc_0), 0, 18172 }, /* MV2SR.W #.W */ +{ CPUFUNC(op_4800_1), 0, 18432 }, /* NBCD.B Dn */ +{ CPUFUNC_FF(op_4808_0), 0, 18440 }, /* LINK.L An,#.L */ +{ CPUFUNC(op_4810_1), 0, 18448 }, /* NBCD.B (An) */ +{ CPUFUNC(op_4818_1), 0, 18456 }, /* NBCD.B (An)+ */ +{ CPUFUNC(op_4820_1), 0, 18464 }, /* NBCD.B -(An) */ +{ CPUFUNC(op_4828_1), 0, 18472 }, /* NBCD.B (d16,An) */ +{ CPUFUNC(op_4830_1), 0, 18480 }, /* NBCD.B (d8,An,Xn) */ +{ CPUFUNC(op_4838_1), 0, 18488 }, /* NBCD.B (xxx).W */ +{ CPUFUNC(op_4839_1), 0, 18489 }, /* NBCD.B (xxx).L */ +{ CPUFUNC(op_4840_0), 0, 18496 }, /* SWAP.W Dn */ +{ CPUFUNC_FF(op_4848_0), 0, 18504 }, /* BKPT.L # */ +{ CPUFUNC_FF(op_4850_0), 0, 18512 }, /* PEA.L (An) */ +{ CPUFUNC_FF(op_4868_0), 0, 18536 }, /* PEA.L (d16,An) */ +{ CPUFUNC_FF(op_4870_0), 0, 18544 }, /* PEA.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4878_0), 0, 18552 }, /* PEA.L (xxx).W */ +{ CPUFUNC_FF(op_4879_0), 0, 18553 }, /* PEA.L (xxx).L */ +{ CPUFUNC_FF(op_487a_0), 0, 18554 }, /* PEA.L (d16,PC) */ +{ CPUFUNC_FF(op_487b_0), 0, 18555 }, /* PEA.L (d8,PC,Xn) */ +{ CPUFUNC(op_4880_0), 0, 18560 }, /* EXT.W Dn */ +{ CPUFUNC_FF(op_4890_0), 0, 18576 }, /* MVMLE.W #.W,(An) */ +{ CPUFUNC_FF(op_48a0_0), 0, 18592 }, /* MVMLE.W #.W,-(An) */ +{ CPUFUNC_FF(op_48a8_0), 0, 18600 }, /* MVMLE.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_48b0_0), 0, 18608 }, /* MVMLE.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_48b8_0), 0, 18616 }, /* MVMLE.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_48b9_0), 0, 18617 }, /* MVMLE.W #.W,(xxx).L */ +{ CPUFUNC(op_48c0_0), 0, 18624 }, /* EXT.L Dn */ +{ CPUFUNC_FF(op_48d0_0), 0, 18640 }, /* MVMLE.L #.W,(An) */ +{ CPUFUNC_FF(op_48e0_0), 0, 18656 }, /* MVMLE.L #.W,-(An) */ +{ CPUFUNC_FF(op_48e8_0), 0, 18664 }, /* MVMLE.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_48f0_0), 0, 18672 }, /* MVMLE.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_48f8_0), 0, 18680 }, /* MVMLE.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_48f9_0), 0, 18681 }, /* MVMLE.L #.W,(xxx).L */ +{ CPUFUNC(op_49c0_0), 0, 18880 }, /* EXT.B Dn */ +{ CPUFUNC(op_4a00_0), 0, 18944 }, /* TST.B Dn */ +{ CPUFUNC(op_4a10_0), 0, 18960 }, /* TST.B (An) */ +{ CPUFUNC(op_4a18_0), 0, 18968 }, /* TST.B (An)+ */ +{ CPUFUNC(op_4a20_0), 0, 18976 }, /* TST.B -(An) */ +{ CPUFUNC(op_4a28_0), 0, 18984 }, /* TST.B (d16,An) */ +{ CPUFUNC(op_4a30_0), 0, 18992 }, /* TST.B (d8,An,Xn) */ +{ CPUFUNC(op_4a38_0), 0, 19000 }, /* TST.B (xxx).W */ +{ CPUFUNC(op_4a39_0), 0, 19001 }, /* TST.B (xxx).L */ +{ CPUFUNC(op_4a3a_0), 0, 19002 }, /* TST.B (d16,PC) */ +{ CPUFUNC(op_4a3b_0), 0, 19003 }, /* TST.B (d8,PC,Xn) */ +{ CPUFUNC(op_4a3c_0), 0, 19004 }, /* TST.B #.B */ +{ CPUFUNC(op_4a40_0), 0, 19008 }, /* TST.W Dn */ +{ CPUFUNC(op_4a48_0), 0, 19016 }, /* TST.W An */ +{ CPUFUNC(op_4a50_0), 0, 19024 }, /* TST.W (An) */ +{ CPUFUNC(op_4a58_0), 0, 19032 }, /* TST.W (An)+ */ +{ CPUFUNC(op_4a60_0), 0, 19040 }, /* TST.W -(An) */ +{ CPUFUNC(op_4a68_0), 0, 19048 }, /* TST.W (d16,An) */ +{ CPUFUNC(op_4a70_0), 0, 19056 }, /* TST.W (d8,An,Xn) */ +{ CPUFUNC(op_4a78_0), 0, 19064 }, /* TST.W (xxx).W */ +{ CPUFUNC(op_4a79_0), 0, 19065 }, /* TST.W (xxx).L */ +{ CPUFUNC(op_4a7a_0), 0, 19066 }, /* TST.W (d16,PC) */ +{ CPUFUNC(op_4a7b_0), 0, 19067 }, /* TST.W (d8,PC,Xn) */ +{ CPUFUNC(op_4a7c_0), 0, 19068 }, /* TST.W #.W */ +{ CPUFUNC(op_4a80_0), 0, 19072 }, /* TST.L Dn */ +{ CPUFUNC(op_4a88_0), 0, 19080 }, /* TST.L An */ +{ CPUFUNC(op_4a90_0), 0, 19088 }, /* TST.L (An) */ +{ CPUFUNC(op_4a98_0), 0, 19096 }, /* TST.L (An)+ */ +{ CPUFUNC(op_4aa0_0), 0, 19104 }, /* TST.L -(An) */ +{ CPUFUNC(op_4aa8_0), 0, 19112 }, /* TST.L (d16,An) */ +{ CPUFUNC(op_4ab0_0), 0, 19120 }, /* TST.L (d8,An,Xn) */ +{ CPUFUNC(op_4ab8_0), 0, 19128 }, /* TST.L (xxx).W */ +{ CPUFUNC(op_4ab9_0), 0, 19129 }, /* TST.L (xxx).L */ +{ CPUFUNC(op_4aba_0), 0, 19130 }, /* TST.L (d16,PC) */ +{ CPUFUNC(op_4abb_0), 0, 19131 }, /* TST.L (d8,PC,Xn) */ +{ CPUFUNC(op_4abc_0), 0, 19132 }, /* TST.L #.L */ +{ CPUFUNC(op_4ac0_0), 0, 19136 }, /* TAS.B Dn */ +{ CPUFUNC(op_4ad0_0), 0, 19152 }, /* TAS.B (An) */ +{ CPUFUNC(op_4ad8_0), 0, 19160 }, /* TAS.B (An)+ */ +{ CPUFUNC(op_4ae0_0), 0, 19168 }, /* TAS.B -(An) */ +{ CPUFUNC(op_4ae8_0), 0, 19176 }, /* TAS.B (d16,An) */ +{ CPUFUNC(op_4af0_0), 0, 19184 }, /* TAS.B (d8,An,Xn) */ +{ CPUFUNC(op_4af8_0), 0, 19192 }, /* TAS.B (xxx).W */ +{ CPUFUNC(op_4af9_0), 0, 19193 }, /* TAS.B (xxx).L */ +{ CPUFUNC(op_4c00_0), 0, 19456 }, /* MULL.L #.W,Dn */ +{ CPUFUNC(op_4c10_0), 0, 19472 }, /* MULL.L #.W,(An) */ +{ CPUFUNC(op_4c18_0), 0, 19480 }, /* MULL.L #.W,(An)+ */ +{ CPUFUNC(op_4c20_0), 0, 19488 }, /* MULL.L #.W,-(An) */ +{ CPUFUNC(op_4c28_0), 0, 19496 }, /* MULL.L #.W,(d16,An) */ +{ CPUFUNC(op_4c30_0), 0, 19504 }, /* MULL.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_4c38_0), 0, 19512 }, /* MULL.L #.W,(xxx).W */ +{ CPUFUNC(op_4c39_0), 0, 19513 }, /* MULL.L #.W,(xxx).L */ +{ CPUFUNC(op_4c3a_0), 0, 19514 }, /* MULL.L #.W,(d16,PC) */ +{ CPUFUNC(op_4c3b_0), 0, 19515 }, /* MULL.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_4c3c_0), 0, 19516 }, /* MULL.L #.W,#.L */ +{ CPUFUNC(op_4c40_0), 0, 19520 }, /* DIVL.L #.W,Dn */ +{ CPUFUNC(op_4c50_0), 0, 19536 }, /* DIVL.L #.W,(An) */ +{ CPUFUNC(op_4c58_0), 0, 19544 }, /* DIVL.L #.W,(An)+ */ +{ CPUFUNC(op_4c60_0), 0, 19552 }, /* DIVL.L #.W,-(An) */ +{ CPUFUNC(op_4c68_0), 0, 19560 }, /* DIVL.L #.W,(d16,An) */ +{ CPUFUNC(op_4c70_0), 0, 19568 }, /* DIVL.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_4c78_0), 0, 19576 }, /* DIVL.L #.W,(xxx).W */ +{ CPUFUNC(op_4c79_0), 0, 19577 }, /* DIVL.L #.W,(xxx).L */ +{ CPUFUNC(op_4c7a_0), 0, 19578 }, /* DIVL.L #.W,(d16,PC) */ +{ CPUFUNC(op_4c7b_0), 0, 19579 }, /* DIVL.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_4c7c_0), 0, 19580 }, /* DIVL.L #.W,#.L */ +{ CPUFUNC_FF(op_4c90_0), 0, 19600 }, /* MVMEL.W #.W,(An) */ +{ CPUFUNC_FF(op_4c98_0), 0, 19608 }, /* MVMEL.W #.W,(An)+ */ +{ CPUFUNC_FF(op_4ca8_0), 0, 19624 }, /* MVMEL.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_4cb0_0), 0, 19632 }, /* MVMEL.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_4cb8_0), 0, 19640 }, /* MVMEL.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_4cb9_0), 0, 19641 }, /* MVMEL.W #.W,(xxx).L */ +{ CPUFUNC_FF(op_4cba_0), 0, 19642 }, /* MVMEL.W #.W,(d16,PC) */ +{ CPUFUNC_FF(op_4cbb_0), 0, 19643 }, /* MVMEL.W #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_4cd0_0), 0, 19664 }, /* MVMEL.L #.W,(An) */ +{ CPUFUNC_FF(op_4cd8_0), 0, 19672 }, /* MVMEL.L #.W,(An)+ */ +{ CPUFUNC_FF(op_4ce8_0), 0, 19688 }, /* MVMEL.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_4cf0_0), 0, 19696 }, /* MVMEL.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_4cf8_0), 0, 19704 }, /* MVMEL.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_4cf9_0), 0, 19705 }, /* MVMEL.L #.W,(xxx).L */ +{ CPUFUNC_FF(op_4cfa_0), 0, 19706 }, /* MVMEL.L #.W,(d16,PC) */ +{ CPUFUNC_FF(op_4cfb_0), 0, 19707 }, /* MVMEL.L #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_4e40_0), 0, 20032 }, /* TRAP.L # */ +{ CPUFUNC_FF(op_4e50_0), 0, 20048 }, /* LINK.W An,#.W */ +{ CPUFUNC_FF(op_4e58_0), 0, 20056 }, /* UNLK.L An */ +{ CPUFUNC_FF(op_4e60_0), 0, 20064 }, /* MVR2USP.L An */ +{ CPUFUNC_FF(op_4e68_0), 0, 20072 }, /* MVUSP2R.L An */ +{ CPUFUNC_FF(op_4e70_0), 0, 20080 }, /* RESET.L */ +{ CPUFUNC_FF(op_4e71_0), 0, 20081 }, /* NOP.L */ +{ CPUFUNC(op_4e72_0), 0, 20082 }, /* STOP.L #.W */ +{ CPUFUNC(op_4e73_0), 0, 20083 }, /* RTE.L */ +{ CPUFUNC_FF(op_4e74_0), 0, 20084 }, /* RTD.L #.W */ +{ CPUFUNC_FF(op_4e75_0), 0, 20085 }, /* RTS.L */ +{ CPUFUNC_FF(op_4e76_0), 0, 20086 }, /* TRAPV.L */ +{ CPUFUNC(op_4e77_0), 0, 20087 }, /* RTR.L */ +{ CPUFUNC_FF(op_4e7a_0), 0, 20090 }, /* MOVEC2.L #.W */ +{ CPUFUNC_FF(op_4e7b_0), 0, 20091 }, /* MOVE2C.L #.W */ +{ CPUFUNC_FF(op_4e90_0), 0, 20112 }, /* JSR.L (An) */ +{ CPUFUNC_FF(op_4ea8_0), 0, 20136 }, /* JSR.L (d16,An) */ +{ CPUFUNC_FF(op_4eb0_0), 0, 20144 }, /* JSR.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4eb8_0), 0, 20152 }, /* JSR.L (xxx).W */ +{ CPUFUNC_FF(op_4eb9_0), 0, 20153 }, /* JSR.L (xxx).L */ +{ CPUFUNC_FF(op_4eba_0), 0, 20154 }, /* JSR.L (d16,PC) */ +{ CPUFUNC_FF(op_4ebb_0), 0, 20155 }, /* JSR.L (d8,PC,Xn) */ +{ CPUFUNC_FF(op_4ed0_0), 0, 20176 }, /* JMP.L (An) */ +{ CPUFUNC_FF(op_4ee8_0), 0, 20200 }, /* JMP.L (d16,An) */ +{ CPUFUNC_FF(op_4ef0_0), 0, 20208 }, /* JMP.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4ef8_0), 0, 20216 }, /* JMP.L (xxx).W */ +{ CPUFUNC_FF(op_4ef9_0), 0, 20217 }, /* JMP.L (xxx).L */ +{ CPUFUNC_FF(op_4efa_0), 0, 20218 }, /* JMP.L (d16,PC) */ +{ CPUFUNC_FF(op_4efb_0), 0, 20219 }, /* JMP.L (d8,PC,Xn) */ +{ CPUFUNC(op_5000_0), 0, 20480 }, /* ADD.B #,Dn */ +{ CPUFUNC(op_5010_0), 0, 20496 }, /* ADD.B #,(An) */ +{ CPUFUNC(op_5018_0), 0, 20504 }, /* ADD.B #,(An)+ */ +{ CPUFUNC(op_5020_0), 0, 20512 }, /* ADD.B #,-(An) */ +{ CPUFUNC(op_5028_0), 0, 20520 }, /* ADD.B #,(d16,An) */ +{ CPUFUNC(op_5030_0), 0, 20528 }, /* ADD.B #,(d8,An,Xn) */ +{ CPUFUNC(op_5038_0), 0, 20536 }, /* ADD.B #,(xxx).W */ +{ CPUFUNC(op_5039_0), 0, 20537 }, /* ADD.B #,(xxx).L */ +{ CPUFUNC(op_5040_0), 0, 20544 }, /* ADD.W #,Dn */ +{ CPUFUNC_FF(op_5048_0), 0, 20552 }, /* ADDA.W #,An */ +{ CPUFUNC(op_5050_0), 0, 20560 }, /* ADD.W #,(An) */ +{ CPUFUNC(op_5058_0), 0, 20568 }, /* ADD.W #,(An)+ */ +{ CPUFUNC(op_5060_0), 0, 20576 }, /* ADD.W #,-(An) */ +{ CPUFUNC(op_5068_0), 0, 20584 }, /* ADD.W #,(d16,An) */ +{ CPUFUNC(op_5070_0), 0, 20592 }, /* ADD.W #,(d8,An,Xn) */ +{ CPUFUNC(op_5078_0), 0, 20600 }, /* ADD.W #,(xxx).W */ +{ CPUFUNC(op_5079_0), 0, 20601 }, /* ADD.W #,(xxx).L */ +{ CPUFUNC(op_5080_0), 0, 20608 }, /* ADD.L #,Dn */ +{ CPUFUNC_FF(op_5088_0), 0, 20616 }, /* ADDA.L #,An */ +{ CPUFUNC(op_5090_0), 0, 20624 }, /* ADD.L #,(An) */ +{ CPUFUNC(op_5098_0), 0, 20632 }, /* ADD.L #,(An)+ */ +{ CPUFUNC(op_50a0_0), 0, 20640 }, /* ADD.L #,-(An) */ +{ CPUFUNC(op_50a8_0), 0, 20648 }, /* ADD.L #,(d16,An) */ +{ CPUFUNC(op_50b0_0), 0, 20656 }, /* ADD.L #,(d8,An,Xn) */ +{ CPUFUNC(op_50b8_0), 0, 20664 }, /* ADD.L #,(xxx).W */ +{ CPUFUNC(op_50b9_0), 0, 20665 }, /* ADD.L #,(xxx).L */ +{ CPUFUNC_FF(op_50c0_0), 0, 20672 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_50c8_0), 0, 20680 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_50d0_0), 0, 20688 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_50d8_0), 0, 20696 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_50e0_0), 0, 20704 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_50e8_0), 0, 20712 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_50f0_0), 0, 20720 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_50f8_0), 0, 20728 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_50f9_0), 0, 20729 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_50fa_0), 0, 20730 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_50fb_0), 0, 20731 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_50fc_0), 0, 20732 }, /* TRAPcc.L */ +{ CPUFUNC(op_5100_0), 0, 20736 }, /* SUB.B #,Dn */ +{ CPUFUNC(op_5110_0), 0, 20752 }, /* SUB.B #,(An) */ +{ CPUFUNC(op_5118_0), 0, 20760 }, /* SUB.B #,(An)+ */ +{ CPUFUNC(op_5120_0), 0, 20768 }, /* SUB.B #,-(An) */ +{ CPUFUNC(op_5128_0), 0, 20776 }, /* SUB.B #,(d16,An) */ +{ CPUFUNC(op_5130_0), 0, 20784 }, /* SUB.B #,(d8,An,Xn) */ +{ CPUFUNC(op_5138_0), 0, 20792 }, /* SUB.B #,(xxx).W */ +{ CPUFUNC(op_5139_0), 0, 20793 }, /* SUB.B #,(xxx).L */ +{ CPUFUNC(op_5140_0), 0, 20800 }, /* SUB.W #,Dn */ +{ CPUFUNC_FF(op_5148_0), 0, 20808 }, /* SUBA.W #,An */ +{ CPUFUNC(op_5150_0), 0, 20816 }, /* SUB.W #,(An) */ +{ CPUFUNC(op_5158_0), 0, 20824 }, /* SUB.W #,(An)+ */ +{ CPUFUNC(op_5160_0), 0, 20832 }, /* SUB.W #,-(An) */ +{ CPUFUNC(op_5168_0), 0, 20840 }, /* SUB.W #,(d16,An) */ +{ CPUFUNC(op_5170_0), 0, 20848 }, /* SUB.W #,(d8,An,Xn) */ +{ CPUFUNC(op_5178_0), 0, 20856 }, /* SUB.W #,(xxx).W */ +{ CPUFUNC(op_5179_0), 0, 20857 }, /* SUB.W #,(xxx).L */ +{ CPUFUNC(op_5180_0), 0, 20864 }, /* SUB.L #,Dn */ +{ CPUFUNC_FF(op_5188_0), 0, 20872 }, /* SUBA.L #,An */ +{ CPUFUNC(op_5190_0), 0, 20880 }, /* SUB.L #,(An) */ +{ CPUFUNC(op_5198_0), 0, 20888 }, /* SUB.L #,(An)+ */ +{ CPUFUNC(op_51a0_0), 0, 20896 }, /* SUB.L #,-(An) */ +{ CPUFUNC(op_51a8_0), 0, 20904 }, /* SUB.L #,(d16,An) */ +{ CPUFUNC(op_51b0_0), 0, 20912 }, /* SUB.L #,(d8,An,Xn) */ +{ CPUFUNC(op_51b8_0), 0, 20920 }, /* SUB.L #,(xxx).W */ +{ CPUFUNC(op_51b9_0), 0, 20921 }, /* SUB.L #,(xxx).L */ +{ CPUFUNC_FF(op_51c0_0), 0, 20928 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_51c8_0), 0, 20936 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_51d0_0), 0, 20944 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_51d8_0), 0, 20952 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_51e0_0), 0, 20960 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_51e8_0), 0, 20968 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_51f0_0), 0, 20976 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_51f8_0), 0, 20984 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_51f9_0), 0, 20985 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_51fa_0), 0, 20986 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_51fb_0), 0, 20987 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_51fc_0), 0, 20988 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_52c0_0), 0, 21184 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_52c8_0), 0, 21192 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_52d0_0), 0, 21200 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_52d8_0), 0, 21208 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_52e0_0), 0, 21216 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_52e8_0), 0, 21224 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_52f0_0), 0, 21232 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_52f8_0), 0, 21240 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_52f9_0), 0, 21241 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_52fa_0), 0, 21242 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_52fb_0), 0, 21243 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_52fc_0), 0, 21244 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_53c0_0), 0, 21440 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_53c8_0), 0, 21448 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_53d0_0), 0, 21456 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_53d8_0), 0, 21464 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_53e0_0), 0, 21472 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_53e8_0), 0, 21480 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_53f0_0), 0, 21488 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_53f8_0), 0, 21496 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_53f9_0), 0, 21497 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_53fa_0), 0, 21498 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_53fb_0), 0, 21499 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_53fc_0), 0, 21500 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_54c0_0), 0, 21696 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_54c8_0), 0, 21704 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_54d0_0), 0, 21712 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_54d8_0), 0, 21720 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_54e0_0), 0, 21728 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_54e8_0), 0, 21736 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_54f0_0), 0, 21744 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_54f8_0), 0, 21752 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_54f9_0), 0, 21753 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_54fa_0), 0, 21754 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_54fb_0), 0, 21755 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_54fc_0), 0, 21756 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_55c0_0), 0, 21952 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_55c8_0), 0, 21960 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_55d0_0), 0, 21968 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_55d8_0), 0, 21976 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_55e0_0), 0, 21984 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_55e8_0), 0, 21992 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_55f0_0), 0, 22000 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_55f8_0), 0, 22008 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_55f9_0), 0, 22009 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_55fa_0), 0, 22010 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_55fb_0), 0, 22011 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_55fc_0), 0, 22012 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_56c0_0), 0, 22208 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_56c8_0), 0, 22216 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_56d0_0), 0, 22224 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_56d8_0), 0, 22232 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_56e0_0), 0, 22240 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_56e8_0), 0, 22248 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_56f0_0), 0, 22256 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_56f8_0), 0, 22264 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_56f9_0), 0, 22265 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_56fa_0), 0, 22266 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_56fb_0), 0, 22267 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_56fc_0), 0, 22268 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_57c0_0), 0, 22464 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_57c8_0), 0, 22472 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_57d0_0), 0, 22480 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_57d8_0), 0, 22488 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_57e0_0), 0, 22496 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_57e8_0), 0, 22504 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_57f0_0), 0, 22512 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_57f8_0), 0, 22520 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_57f9_0), 0, 22521 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_57fa_0), 0, 22522 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_57fb_0), 0, 22523 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_57fc_0), 0, 22524 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_58c0_0), 0, 22720 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_58c8_0), 0, 22728 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_58d0_0), 0, 22736 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_58d8_0), 0, 22744 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_58e0_0), 0, 22752 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_58e8_0), 0, 22760 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_58f0_0), 0, 22768 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_58f8_0), 0, 22776 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_58f9_0), 0, 22777 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_58fa_0), 0, 22778 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_58fb_0), 0, 22779 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_58fc_0), 0, 22780 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_59c0_0), 0, 22976 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_59c8_0), 0, 22984 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_59d0_0), 0, 22992 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_59d8_0), 0, 23000 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_59e0_0), 0, 23008 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_59e8_0), 0, 23016 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_59f0_0), 0, 23024 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_59f8_0), 0, 23032 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_59f9_0), 0, 23033 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_59fa_0), 0, 23034 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_59fb_0), 0, 23035 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_59fc_0), 0, 23036 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5ac0_0), 0, 23232 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5ac8_0), 0, 23240 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5ad0_0), 0, 23248 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5ad8_0), 0, 23256 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ae0_0), 0, 23264 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ae8_0), 0, 23272 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5af0_0), 0, 23280 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5af8_0), 0, 23288 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5af9_0), 0, 23289 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5afa_0), 0, 23290 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5afb_0), 0, 23291 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5afc_0), 0, 23292 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5bc0_0), 0, 23488 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5bc8_0), 0, 23496 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5bd0_0), 0, 23504 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5bd8_0), 0, 23512 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5be0_0), 0, 23520 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5be8_0), 0, 23528 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5bf0_0), 0, 23536 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5bf8_0), 0, 23544 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5bf9_0), 0, 23545 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5bfa_0), 0, 23546 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5bfb_0), 0, 23547 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5bfc_0), 0, 23548 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5cc0_0), 0, 23744 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5cc8_0), 0, 23752 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5cd0_0), 0, 23760 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5cd8_0), 0, 23768 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ce0_0), 0, 23776 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ce8_0), 0, 23784 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5cf0_0), 0, 23792 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5cf8_0), 0, 23800 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5cf9_0), 0, 23801 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5cfa_0), 0, 23802 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5cfb_0), 0, 23803 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5cfc_0), 0, 23804 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5dc0_0), 0, 24000 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5dc8_0), 0, 24008 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5dd0_0), 0, 24016 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5dd8_0), 0, 24024 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5de0_0), 0, 24032 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5de8_0), 0, 24040 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5df0_0), 0, 24048 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5df8_0), 0, 24056 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5df9_0), 0, 24057 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5dfa_0), 0, 24058 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5dfb_0), 0, 24059 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5dfc_0), 0, 24060 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5ec0_0), 0, 24256 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5ec8_0), 0, 24264 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5ed0_0), 0, 24272 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5ed8_0), 0, 24280 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ee0_0), 0, 24288 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ee8_0), 0, 24296 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5ef0_0), 0, 24304 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5ef8_0), 0, 24312 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5ef9_0), 0, 24313 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5efa_0), 0, 24314 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5efb_0), 0, 24315 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5efc_0), 0, 24316 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_5fc0_0), 0, 24512 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5fc8_0), 0, 24520 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5fd0_0), 0, 24528 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5fd8_0), 0, 24536 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5fe0_0), 0, 24544 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5fe8_0), 0, 24552 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5ff0_0), 0, 24560 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5ff8_0), 0, 24568 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5ff9_0), 0, 24569 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5ffa_0), 0, 24570 }, /* TRAPcc.L #.W */ +{ CPUFUNC_FF(op_5ffb_0), 0, 24571 }, /* TRAPcc.L #.L */ +{ CPUFUNC_FF(op_5ffc_0), 0, 24572 }, /* TRAPcc.L */ +{ CPUFUNC_FF(op_6000_0), 0, 24576 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6001_0), 0, 24577 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_60ff_0), 0, 24831 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6100_0), 0, 24832 }, /* BSR.W #.W */ +{ CPUFUNC_FF(op_6101_0), 0, 24833 }, /* BSR.B # */ +{ CPUFUNC_FF(op_61ff_0), 0, 25087 }, /* BSR.L #.L */ +{ CPUFUNC_FF(op_6200_0), 0, 25088 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6201_0), 0, 25089 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_62ff_0), 0, 25343 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6300_0), 0, 25344 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6301_0), 0, 25345 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_63ff_0), 0, 25599 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6400_0), 0, 25600 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6401_0), 0, 25601 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_64ff_0), 0, 25855 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6500_0), 0, 25856 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6501_0), 0, 25857 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_65ff_0), 0, 26111 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6600_0), 0, 26112 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6601_0), 0, 26113 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_66ff_0), 0, 26367 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6700_0), 0, 26368 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6701_0), 0, 26369 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_67ff_0), 0, 26623 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6800_0), 0, 26624 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6801_0), 0, 26625 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_68ff_0), 0, 26879 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6900_0), 0, 26880 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6901_0), 0, 26881 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_69ff_0), 0, 27135 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6a00_0), 0, 27136 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6a01_0), 0, 27137 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6aff_0), 0, 27391 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6b00_0), 0, 27392 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6b01_0), 0, 27393 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6bff_0), 0, 27647 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6c00_0), 0, 27648 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6c01_0), 0, 27649 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6cff_0), 0, 27903 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6d00_0), 0, 27904 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6d01_0), 0, 27905 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6dff_0), 0, 28159 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6e00_0), 0, 28160 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6e01_0), 0, 28161 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6eff_0), 0, 28415 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6f00_0), 0, 28416 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6f01_0), 0, 28417 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6fff_0), 0, 28671 }, /* Bcc.L #.L */ +{ CPUFUNC(op_7000_0), 0, 28672 }, /* MOVE.L #,Dn */ +{ CPUFUNC_FF(op_7100_0), 0, 28928 }, /* EMULOP_RETURN.L */ +{ CPUFUNC_FF(op_7101_0), 0, 28929 }, /* EMULOP.L # */ +{ CPUFUNC(op_8000_0), 0, 32768 }, /* OR.B Dn,Dn */ +{ CPUFUNC(op_8010_0), 0, 32784 }, /* OR.B (An),Dn */ +{ CPUFUNC(op_8018_0), 0, 32792 }, /* OR.B (An)+,Dn */ +{ CPUFUNC(op_8020_0), 0, 32800 }, /* OR.B -(An),Dn */ +{ CPUFUNC(op_8028_0), 0, 32808 }, /* OR.B (d16,An),Dn */ +{ CPUFUNC(op_8030_0), 0, 32816 }, /* OR.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_8038_0), 0, 32824 }, /* OR.B (xxx).W,Dn */ +{ CPUFUNC(op_8039_0), 0, 32825 }, /* OR.B (xxx).L,Dn */ +{ CPUFUNC(op_803a_0), 0, 32826 }, /* OR.B (d16,PC),Dn */ +{ CPUFUNC(op_803b_0), 0, 32827 }, /* OR.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_803c_0), 0, 32828 }, /* OR.B #.B,Dn */ +{ CPUFUNC(op_8040_0), 0, 32832 }, /* OR.W Dn,Dn */ +{ CPUFUNC(op_8050_0), 0, 32848 }, /* OR.W (An),Dn */ +{ CPUFUNC(op_8058_0), 0, 32856 }, /* OR.W (An)+,Dn */ +{ CPUFUNC(op_8060_0), 0, 32864 }, /* OR.W -(An),Dn */ +{ CPUFUNC(op_8068_0), 0, 32872 }, /* OR.W (d16,An),Dn */ +{ CPUFUNC(op_8070_0), 0, 32880 }, /* OR.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_8078_0), 0, 32888 }, /* OR.W (xxx).W,Dn */ +{ CPUFUNC(op_8079_0), 0, 32889 }, /* OR.W (xxx).L,Dn */ +{ CPUFUNC(op_807a_0), 0, 32890 }, /* OR.W (d16,PC),Dn */ +{ CPUFUNC(op_807b_0), 0, 32891 }, /* OR.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_807c_0), 0, 32892 }, /* OR.W #.W,Dn */ +{ CPUFUNC(op_8080_0), 0, 32896 }, /* OR.L Dn,Dn */ +{ CPUFUNC(op_8090_0), 0, 32912 }, /* OR.L (An),Dn */ +{ CPUFUNC(op_8098_0), 0, 32920 }, /* OR.L (An)+,Dn */ +{ CPUFUNC(op_80a0_0), 0, 32928 }, /* OR.L -(An),Dn */ +{ CPUFUNC(op_80a8_0), 0, 32936 }, /* OR.L (d16,An),Dn */ +{ CPUFUNC(op_80b0_0), 0, 32944 }, /* OR.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_80b8_0), 0, 32952 }, /* OR.L (xxx).W,Dn */ +{ CPUFUNC(op_80b9_0), 0, 32953 }, /* OR.L (xxx).L,Dn */ +{ CPUFUNC(op_80ba_0), 0, 32954 }, /* OR.L (d16,PC),Dn */ +{ CPUFUNC(op_80bb_0), 0, 32955 }, /* OR.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_80bc_0), 0, 32956 }, /* OR.L #.L,Dn */ +{ CPUFUNC(op_80c0_0), 0, 32960 }, /* DIVU.W Dn,Dn */ +{ CPUFUNC(op_80d0_0), 0, 32976 }, /* DIVU.W (An),Dn */ +{ CPUFUNC(op_80d8_0), 0, 32984 }, /* DIVU.W (An)+,Dn */ +{ CPUFUNC(op_80e0_0), 0, 32992 }, /* DIVU.W -(An),Dn */ +{ CPUFUNC(op_80e8_0), 0, 33000 }, /* DIVU.W (d16,An),Dn */ +{ CPUFUNC(op_80f0_0), 0, 33008 }, /* DIVU.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_80f8_0), 0, 33016 }, /* DIVU.W (xxx).W,Dn */ +{ CPUFUNC(op_80f9_0), 0, 33017 }, /* DIVU.W (xxx).L,Dn */ +{ CPUFUNC(op_80fa_0), 0, 33018 }, /* DIVU.W (d16,PC),Dn */ +{ CPUFUNC(op_80fb_0), 0, 33019 }, /* DIVU.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_80fc_0), 0, 33020 }, /* DIVU.W #.W,Dn */ +{ CPUFUNC(op_8100_1), 0, 33024 }, /* SBCD.B Dn,Dn */ +{ CPUFUNC(op_8108_1), 0, 33032 }, /* SBCD.B -(An),-(An) */ +{ CPUFUNC(op_8110_0), 0, 33040 }, /* OR.B Dn,(An) */ +{ CPUFUNC(op_8118_0), 0, 33048 }, /* OR.B Dn,(An)+ */ +{ CPUFUNC(op_8120_0), 0, 33056 }, /* OR.B Dn,-(An) */ +{ CPUFUNC(op_8128_0), 0, 33064 }, /* OR.B Dn,(d16,An) */ +{ CPUFUNC(op_8130_0), 0, 33072 }, /* OR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_8138_0), 0, 33080 }, /* OR.B Dn,(xxx).W */ +{ CPUFUNC(op_8139_0), 0, 33081 }, /* OR.B Dn,(xxx).L */ +{ CPUFUNC_FF(op_8140_0), 0, 33088 }, /* PACK.L Dn,Dn */ +{ CPUFUNC_FF(op_8148_0), 0, 33096 }, /* PACK.L -(An),-(An) */ +{ CPUFUNC(op_8150_0), 0, 33104 }, /* OR.W Dn,(An) */ +{ CPUFUNC(op_8158_0), 0, 33112 }, /* OR.W Dn,(An)+ */ +{ CPUFUNC(op_8160_0), 0, 33120 }, /* OR.W Dn,-(An) */ +{ CPUFUNC(op_8168_0), 0, 33128 }, /* OR.W Dn,(d16,An) */ +{ CPUFUNC(op_8170_0), 0, 33136 }, /* OR.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_8178_0), 0, 33144 }, /* OR.W Dn,(xxx).W */ +{ CPUFUNC(op_8179_0), 0, 33145 }, /* OR.W Dn,(xxx).L */ +{ CPUFUNC_FF(op_8180_0), 0, 33152 }, /* UNPK.L Dn,Dn */ +{ CPUFUNC_FF(op_8188_0), 0, 33160 }, /* UNPK.L -(An),-(An) */ +{ CPUFUNC(op_8190_0), 0, 33168 }, /* OR.L Dn,(An) */ +{ CPUFUNC(op_8198_0), 0, 33176 }, /* OR.L Dn,(An)+ */ +{ CPUFUNC(op_81a0_0), 0, 33184 }, /* OR.L Dn,-(An) */ +{ CPUFUNC(op_81a8_0), 0, 33192 }, /* OR.L Dn,(d16,An) */ +{ CPUFUNC(op_81b0_0), 0, 33200 }, /* OR.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_81b8_0), 0, 33208 }, /* OR.L Dn,(xxx).W */ +{ CPUFUNC(op_81b9_0), 0, 33209 }, /* OR.L Dn,(xxx).L */ +{ CPUFUNC(op_81c0_0), 0, 33216 }, /* DIVS.W Dn,Dn */ +{ CPUFUNC(op_81d0_0), 0, 33232 }, /* DIVS.W (An),Dn */ +{ CPUFUNC(op_81d8_0), 0, 33240 }, /* DIVS.W (An)+,Dn */ +{ CPUFUNC(op_81e0_0), 0, 33248 }, /* DIVS.W -(An),Dn */ +{ CPUFUNC(op_81e8_0), 0, 33256 }, /* DIVS.W (d16,An),Dn */ +{ CPUFUNC(op_81f0_0), 0, 33264 }, /* DIVS.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_81f8_0), 0, 33272 }, /* DIVS.W (xxx).W,Dn */ +{ CPUFUNC(op_81f9_0), 0, 33273 }, /* DIVS.W (xxx).L,Dn */ +{ CPUFUNC(op_81fa_0), 0, 33274 }, /* DIVS.W (d16,PC),Dn */ +{ CPUFUNC(op_81fb_0), 0, 33275 }, /* DIVS.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_81fc_0), 0, 33276 }, /* DIVS.W #.W,Dn */ +{ CPUFUNC(op_9000_0), 0, 36864 }, /* SUB.B Dn,Dn */ +{ CPUFUNC(op_9010_0), 0, 36880 }, /* SUB.B (An),Dn */ +{ CPUFUNC(op_9018_0), 0, 36888 }, /* SUB.B (An)+,Dn */ +{ CPUFUNC(op_9020_0), 0, 36896 }, /* SUB.B -(An),Dn */ +{ CPUFUNC(op_9028_0), 0, 36904 }, /* SUB.B (d16,An),Dn */ +{ CPUFUNC(op_9030_0), 0, 36912 }, /* SUB.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_9038_0), 0, 36920 }, /* SUB.B (xxx).W,Dn */ +{ CPUFUNC(op_9039_0), 0, 36921 }, /* SUB.B (xxx).L,Dn */ +{ CPUFUNC(op_903a_0), 0, 36922 }, /* SUB.B (d16,PC),Dn */ +{ CPUFUNC(op_903b_0), 0, 36923 }, /* SUB.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_903c_0), 0, 36924 }, /* SUB.B #.B,Dn */ +{ CPUFUNC(op_9040_0), 0, 36928 }, /* SUB.W Dn,Dn */ +{ CPUFUNC(op_9048_0), 0, 36936 }, /* SUB.W An,Dn */ +{ CPUFUNC(op_9050_0), 0, 36944 }, /* SUB.W (An),Dn */ +{ CPUFUNC(op_9058_0), 0, 36952 }, /* SUB.W (An)+,Dn */ +{ CPUFUNC(op_9060_0), 0, 36960 }, /* SUB.W -(An),Dn */ +{ CPUFUNC(op_9068_0), 0, 36968 }, /* SUB.W (d16,An),Dn */ +{ CPUFUNC(op_9070_0), 0, 36976 }, /* SUB.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_9078_0), 0, 36984 }, /* SUB.W (xxx).W,Dn */ +{ CPUFUNC(op_9079_0), 0, 36985 }, /* SUB.W (xxx).L,Dn */ +{ CPUFUNC(op_907a_0), 0, 36986 }, /* SUB.W (d16,PC),Dn */ +{ CPUFUNC(op_907b_0), 0, 36987 }, /* SUB.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_907c_0), 0, 36988 }, /* SUB.W #.W,Dn */ +{ CPUFUNC(op_9080_0), 0, 36992 }, /* SUB.L Dn,Dn */ +{ CPUFUNC(op_9088_0), 0, 37000 }, /* SUB.L An,Dn */ +{ CPUFUNC(op_9090_0), 0, 37008 }, /* SUB.L (An),Dn */ +{ CPUFUNC(op_9098_0), 0, 37016 }, /* SUB.L (An)+,Dn */ +{ CPUFUNC(op_90a0_0), 0, 37024 }, /* SUB.L -(An),Dn */ +{ CPUFUNC(op_90a8_0), 0, 37032 }, /* SUB.L (d16,An),Dn */ +{ CPUFUNC(op_90b0_0), 0, 37040 }, /* SUB.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_90b8_0), 0, 37048 }, /* SUB.L (xxx).W,Dn */ +{ CPUFUNC(op_90b9_0), 0, 37049 }, /* SUB.L (xxx).L,Dn */ +{ CPUFUNC(op_90ba_0), 0, 37050 }, /* SUB.L (d16,PC),Dn */ +{ CPUFUNC(op_90bb_0), 0, 37051 }, /* SUB.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_90bc_0), 0, 37052 }, /* SUB.L #.L,Dn */ +{ CPUFUNC_FF(op_90c0_0), 0, 37056 }, /* SUBA.W Dn,An */ +{ CPUFUNC_FF(op_90c8_0), 0, 37064 }, /* SUBA.W An,An */ +{ CPUFUNC_FF(op_90d0_0), 0, 37072 }, /* SUBA.W (An),An */ +{ CPUFUNC_FF(op_90d8_0), 0, 37080 }, /* SUBA.W (An)+,An */ +{ CPUFUNC_FF(op_90e0_0), 0, 37088 }, /* SUBA.W -(An),An */ +{ CPUFUNC_FF(op_90e8_0), 0, 37096 }, /* SUBA.W (d16,An),An */ +{ CPUFUNC_FF(op_90f0_0), 0, 37104 }, /* SUBA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_90f8_0), 0, 37112 }, /* SUBA.W (xxx).W,An */ +{ CPUFUNC_FF(op_90f9_0), 0, 37113 }, /* SUBA.W (xxx).L,An */ +{ CPUFUNC_FF(op_90fa_0), 0, 37114 }, /* SUBA.W (d16,PC),An */ +{ CPUFUNC_FF(op_90fb_0), 0, 37115 }, /* SUBA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_90fc_0), 0, 37116 }, /* SUBA.W #.W,An */ +{ CPUFUNC(op_9100_0), 0, 37120 }, /* SUBX.B Dn,Dn */ +{ CPUFUNC(op_9108_0), 0, 37128 }, /* SUBX.B -(An),-(An) */ +{ CPUFUNC(op_9110_0), 0, 37136 }, /* SUB.B Dn,(An) */ +{ CPUFUNC(op_9118_0), 0, 37144 }, /* SUB.B Dn,(An)+ */ +{ CPUFUNC(op_9120_0), 0, 37152 }, /* SUB.B Dn,-(An) */ +{ CPUFUNC(op_9128_0), 0, 37160 }, /* SUB.B Dn,(d16,An) */ +{ CPUFUNC(op_9130_0), 0, 37168 }, /* SUB.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_9138_0), 0, 37176 }, /* SUB.B Dn,(xxx).W */ +{ CPUFUNC(op_9139_0), 0, 37177 }, /* SUB.B Dn,(xxx).L */ +{ CPUFUNC(op_9140_0), 0, 37184 }, /* SUBX.W Dn,Dn */ +{ CPUFUNC(op_9148_0), 0, 37192 }, /* SUBX.W -(An),-(An) */ +{ CPUFUNC(op_9150_0), 0, 37200 }, /* SUB.W Dn,(An) */ +{ CPUFUNC(op_9158_0), 0, 37208 }, /* SUB.W Dn,(An)+ */ +{ CPUFUNC(op_9160_0), 0, 37216 }, /* SUB.W Dn,-(An) */ +{ CPUFUNC(op_9168_0), 0, 37224 }, /* SUB.W Dn,(d16,An) */ +{ CPUFUNC(op_9170_0), 0, 37232 }, /* SUB.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_9178_0), 0, 37240 }, /* SUB.W Dn,(xxx).W */ +{ CPUFUNC(op_9179_0), 0, 37241 }, /* SUB.W Dn,(xxx).L */ +{ CPUFUNC(op_9180_0), 0, 37248 }, /* SUBX.L Dn,Dn */ +{ CPUFUNC(op_9188_0), 0, 37256 }, /* SUBX.L -(An),-(An) */ +{ CPUFUNC(op_9190_0), 0, 37264 }, /* SUB.L Dn,(An) */ +{ CPUFUNC(op_9198_0), 0, 37272 }, /* SUB.L Dn,(An)+ */ +{ CPUFUNC(op_91a0_0), 0, 37280 }, /* SUB.L Dn,-(An) */ +{ CPUFUNC(op_91a8_0), 0, 37288 }, /* SUB.L Dn,(d16,An) */ +{ CPUFUNC(op_91b0_0), 0, 37296 }, /* SUB.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_91b8_0), 0, 37304 }, /* SUB.L Dn,(xxx).W */ +{ CPUFUNC(op_91b9_0), 0, 37305 }, /* SUB.L Dn,(xxx).L */ +{ CPUFUNC_FF(op_91c0_0), 0, 37312 }, /* SUBA.L Dn,An */ +{ CPUFUNC_FF(op_91c8_0), 0, 37320 }, /* SUBA.L An,An */ +{ CPUFUNC_FF(op_91d0_0), 0, 37328 }, /* SUBA.L (An),An */ +{ CPUFUNC_FF(op_91d8_0), 0, 37336 }, /* SUBA.L (An)+,An */ +{ CPUFUNC_FF(op_91e0_0), 0, 37344 }, /* SUBA.L -(An),An */ +{ CPUFUNC_FF(op_91e8_0), 0, 37352 }, /* SUBA.L (d16,An),An */ +{ CPUFUNC_FF(op_91f0_0), 0, 37360 }, /* SUBA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_91f8_0), 0, 37368 }, /* SUBA.L (xxx).W,An */ +{ CPUFUNC_FF(op_91f9_0), 0, 37369 }, /* SUBA.L (xxx).L,An */ +{ CPUFUNC_FF(op_91fa_0), 0, 37370 }, /* SUBA.L (d16,PC),An */ +{ CPUFUNC_FF(op_91fb_0), 0, 37371 }, /* SUBA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_91fc_0), 0, 37372 }, /* SUBA.L #.L,An */ +{ CPUFUNC(op_b000_0), 0, 45056 }, /* CMP.B Dn,Dn */ +{ CPUFUNC(op_b010_0), 0, 45072 }, /* CMP.B (An),Dn */ +{ CPUFUNC(op_b018_0), 0, 45080 }, /* CMP.B (An)+,Dn */ +{ CPUFUNC(op_b020_0), 0, 45088 }, /* CMP.B -(An),Dn */ +{ CPUFUNC(op_b028_0), 0, 45096 }, /* CMP.B (d16,An),Dn */ +{ CPUFUNC(op_b030_0), 0, 45104 }, /* CMP.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_b038_0), 0, 45112 }, /* CMP.B (xxx).W,Dn */ +{ CPUFUNC(op_b039_0), 0, 45113 }, /* CMP.B (xxx).L,Dn */ +{ CPUFUNC(op_b03a_0), 0, 45114 }, /* CMP.B (d16,PC),Dn */ +{ CPUFUNC(op_b03b_0), 0, 45115 }, /* CMP.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b03c_0), 0, 45116 }, /* CMP.B #.B,Dn */ +{ CPUFUNC(op_b040_0), 0, 45120 }, /* CMP.W Dn,Dn */ +{ CPUFUNC(op_b048_0), 0, 45128 }, /* CMP.W An,Dn */ +{ CPUFUNC(op_b050_0), 0, 45136 }, /* CMP.W (An),Dn */ +{ CPUFUNC(op_b058_0), 0, 45144 }, /* CMP.W (An)+,Dn */ +{ CPUFUNC(op_b060_0), 0, 45152 }, /* CMP.W -(An),Dn */ +{ CPUFUNC(op_b068_0), 0, 45160 }, /* CMP.W (d16,An),Dn */ +{ CPUFUNC(op_b070_0), 0, 45168 }, /* CMP.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_b078_0), 0, 45176 }, /* CMP.W (xxx).W,Dn */ +{ CPUFUNC(op_b079_0), 0, 45177 }, /* CMP.W (xxx).L,Dn */ +{ CPUFUNC(op_b07a_0), 0, 45178 }, /* CMP.W (d16,PC),Dn */ +{ CPUFUNC(op_b07b_0), 0, 45179 }, /* CMP.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b07c_0), 0, 45180 }, /* CMP.W #.W,Dn */ +{ CPUFUNC(op_b080_0), 0, 45184 }, /* CMP.L Dn,Dn */ +{ CPUFUNC(op_b088_0), 0, 45192 }, /* CMP.L An,Dn */ +{ CPUFUNC(op_b090_0), 0, 45200 }, /* CMP.L (An),Dn */ +{ CPUFUNC(op_b098_0), 0, 45208 }, /* CMP.L (An)+,Dn */ +{ CPUFUNC(op_b0a0_0), 0, 45216 }, /* CMP.L -(An),Dn */ +{ CPUFUNC(op_b0a8_0), 0, 45224 }, /* CMP.L (d16,An),Dn */ +{ CPUFUNC(op_b0b0_0), 0, 45232 }, /* CMP.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_b0b8_0), 0, 45240 }, /* CMP.L (xxx).W,Dn */ +{ CPUFUNC(op_b0b9_0), 0, 45241 }, /* CMP.L (xxx).L,Dn */ +{ CPUFUNC(op_b0ba_0), 0, 45242 }, /* CMP.L (d16,PC),Dn */ +{ CPUFUNC(op_b0bb_0), 0, 45243 }, /* CMP.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b0bc_0), 0, 45244 }, /* CMP.L #.L,Dn */ +{ CPUFUNC(op_b0c0_0), 0, 45248 }, /* CMPA.W Dn,An */ +{ CPUFUNC(op_b0c8_0), 0, 45256 }, /* CMPA.W An,An */ +{ CPUFUNC(op_b0d0_0), 0, 45264 }, /* CMPA.W (An),An */ +{ CPUFUNC(op_b0d8_0), 0, 45272 }, /* CMPA.W (An)+,An */ +{ CPUFUNC(op_b0e0_0), 0, 45280 }, /* CMPA.W -(An),An */ +{ CPUFUNC(op_b0e8_0), 0, 45288 }, /* CMPA.W (d16,An),An */ +{ CPUFUNC(op_b0f0_0), 0, 45296 }, /* CMPA.W (d8,An,Xn),An */ +{ CPUFUNC(op_b0f8_0), 0, 45304 }, /* CMPA.W (xxx).W,An */ +{ CPUFUNC(op_b0f9_0), 0, 45305 }, /* CMPA.W (xxx).L,An */ +{ CPUFUNC(op_b0fa_0), 0, 45306 }, /* CMPA.W (d16,PC),An */ +{ CPUFUNC(op_b0fb_0), 0, 45307 }, /* CMPA.W (d8,PC,Xn),An */ +{ CPUFUNC(op_b0fc_0), 0, 45308 }, /* CMPA.W #.W,An */ +{ CPUFUNC(op_b100_0), 0, 45312 }, /* EOR.B Dn,Dn */ +{ CPUFUNC(op_b108_0), 0, 45320 }, /* CMPM.B (An)+,(An)+ */ +{ CPUFUNC(op_b110_0), 0, 45328 }, /* EOR.B Dn,(An) */ +{ CPUFUNC(op_b118_0), 0, 45336 }, /* EOR.B Dn,(An)+ */ +{ CPUFUNC(op_b120_0), 0, 45344 }, /* EOR.B Dn,-(An) */ +{ CPUFUNC(op_b128_0), 0, 45352 }, /* EOR.B Dn,(d16,An) */ +{ CPUFUNC(op_b130_0), 0, 45360 }, /* EOR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b138_0), 0, 45368 }, /* EOR.B Dn,(xxx).W */ +{ CPUFUNC(op_b139_0), 0, 45369 }, /* EOR.B Dn,(xxx).L */ +{ CPUFUNC(op_b140_0), 0, 45376 }, /* EOR.W Dn,Dn */ +{ CPUFUNC(op_b148_0), 0, 45384 }, /* CMPM.W (An)+,(An)+ */ +{ CPUFUNC(op_b150_0), 0, 45392 }, /* EOR.W Dn,(An) */ +{ CPUFUNC(op_b158_0), 0, 45400 }, /* EOR.W Dn,(An)+ */ +{ CPUFUNC(op_b160_0), 0, 45408 }, /* EOR.W Dn,-(An) */ +{ CPUFUNC(op_b168_0), 0, 45416 }, /* EOR.W Dn,(d16,An) */ +{ CPUFUNC(op_b170_0), 0, 45424 }, /* EOR.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b178_0), 0, 45432 }, /* EOR.W Dn,(xxx).W */ +{ CPUFUNC(op_b179_0), 0, 45433 }, /* EOR.W Dn,(xxx).L */ +{ CPUFUNC(op_b180_0), 0, 45440 }, /* EOR.L Dn,Dn */ +{ CPUFUNC(op_b188_0), 0, 45448 }, /* CMPM.L (An)+,(An)+ */ +{ CPUFUNC(op_b190_0), 0, 45456 }, /* EOR.L Dn,(An) */ +{ CPUFUNC(op_b198_0), 0, 45464 }, /* EOR.L Dn,(An)+ */ +{ CPUFUNC(op_b1a0_0), 0, 45472 }, /* EOR.L Dn,-(An) */ +{ CPUFUNC(op_b1a8_0), 0, 45480 }, /* EOR.L Dn,(d16,An) */ +{ CPUFUNC(op_b1b0_0), 0, 45488 }, /* EOR.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b1b8_0), 0, 45496 }, /* EOR.L Dn,(xxx).W */ +{ CPUFUNC(op_b1b9_0), 0, 45497 }, /* EOR.L Dn,(xxx).L */ +{ CPUFUNC(op_b1c0_0), 0, 45504 }, /* CMPA.L Dn,An */ +{ CPUFUNC(op_b1c8_0), 0, 45512 }, /* CMPA.L An,An */ +{ CPUFUNC(op_b1d0_0), 0, 45520 }, /* CMPA.L (An),An */ +{ CPUFUNC(op_b1d8_0), 0, 45528 }, /* CMPA.L (An)+,An */ +{ CPUFUNC(op_b1e0_0), 0, 45536 }, /* CMPA.L -(An),An */ +{ CPUFUNC(op_b1e8_0), 0, 45544 }, /* CMPA.L (d16,An),An */ +{ CPUFUNC(op_b1f0_0), 0, 45552 }, /* CMPA.L (d8,An,Xn),An */ +{ CPUFUNC(op_b1f8_0), 0, 45560 }, /* CMPA.L (xxx).W,An */ +{ CPUFUNC(op_b1f9_0), 0, 45561 }, /* CMPA.L (xxx).L,An */ +{ CPUFUNC(op_b1fa_0), 0, 45562 }, /* CMPA.L (d16,PC),An */ +{ CPUFUNC(op_b1fb_0), 0, 45563 }, /* CMPA.L (d8,PC,Xn),An */ +{ CPUFUNC(op_b1fc_0), 0, 45564 }, /* CMPA.L #.L,An */ +{ CPUFUNC(op_c000_0), 0, 49152 }, /* AND.B Dn,Dn */ +{ CPUFUNC(op_c010_0), 0, 49168 }, /* AND.B (An),Dn */ +{ CPUFUNC(op_c018_0), 0, 49176 }, /* AND.B (An)+,Dn */ +{ CPUFUNC(op_c020_0), 0, 49184 }, /* AND.B -(An),Dn */ +{ CPUFUNC(op_c028_0), 0, 49192 }, /* AND.B (d16,An),Dn */ +{ CPUFUNC(op_c030_0), 0, 49200 }, /* AND.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_c038_0), 0, 49208 }, /* AND.B (xxx).W,Dn */ +{ CPUFUNC(op_c039_0), 0, 49209 }, /* AND.B (xxx).L,Dn */ +{ CPUFUNC(op_c03a_0), 0, 49210 }, /* AND.B (d16,PC),Dn */ +{ CPUFUNC(op_c03b_0), 0, 49211 }, /* AND.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c03c_0), 0, 49212 }, /* AND.B #.B,Dn */ +{ CPUFUNC(op_c040_0), 0, 49216 }, /* AND.W Dn,Dn */ +{ CPUFUNC(op_c050_0), 0, 49232 }, /* AND.W (An),Dn */ +{ CPUFUNC(op_c058_0), 0, 49240 }, /* AND.W (An)+,Dn */ +{ CPUFUNC(op_c060_0), 0, 49248 }, /* AND.W -(An),Dn */ +{ CPUFUNC(op_c068_0), 0, 49256 }, /* AND.W (d16,An),Dn */ +{ CPUFUNC(op_c070_0), 0, 49264 }, /* AND.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c078_0), 0, 49272 }, /* AND.W (xxx).W,Dn */ +{ CPUFUNC(op_c079_0), 0, 49273 }, /* AND.W (xxx).L,Dn */ +{ CPUFUNC(op_c07a_0), 0, 49274 }, /* AND.W (d16,PC),Dn */ +{ CPUFUNC(op_c07b_0), 0, 49275 }, /* AND.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c07c_0), 0, 49276 }, /* AND.W #.W,Dn */ +{ CPUFUNC(op_c080_0), 0, 49280 }, /* AND.L Dn,Dn */ +{ CPUFUNC(op_c090_0), 0, 49296 }, /* AND.L (An),Dn */ +{ CPUFUNC(op_c098_0), 0, 49304 }, /* AND.L (An)+,Dn */ +{ CPUFUNC(op_c0a0_0), 0, 49312 }, /* AND.L -(An),Dn */ +{ CPUFUNC(op_c0a8_0), 0, 49320 }, /* AND.L (d16,An),Dn */ +{ CPUFUNC(op_c0b0_0), 0, 49328 }, /* AND.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_c0b8_0), 0, 49336 }, /* AND.L (xxx).W,Dn */ +{ CPUFUNC(op_c0b9_0), 0, 49337 }, /* AND.L (xxx).L,Dn */ +{ CPUFUNC(op_c0ba_0), 0, 49338 }, /* AND.L (d16,PC),Dn */ +{ CPUFUNC(op_c0bb_0), 0, 49339 }, /* AND.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c0bc_0), 0, 49340 }, /* AND.L #.L,Dn */ +{ CPUFUNC(op_c0c0_0), 0, 49344 }, /* MULU.W Dn,Dn */ +{ CPUFUNC(op_c0d0_0), 0, 49360 }, /* MULU.W (An),Dn */ +{ CPUFUNC(op_c0d8_0), 0, 49368 }, /* MULU.W (An)+,Dn */ +{ CPUFUNC(op_c0e0_0), 0, 49376 }, /* MULU.W -(An),Dn */ +{ CPUFUNC(op_c0e8_0), 0, 49384 }, /* MULU.W (d16,An),Dn */ +{ CPUFUNC(op_c0f0_0), 0, 49392 }, /* MULU.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c0f8_0), 0, 49400 }, /* MULU.W (xxx).W,Dn */ +{ CPUFUNC(op_c0f9_0), 0, 49401 }, /* MULU.W (xxx).L,Dn */ +{ CPUFUNC(op_c0fa_0), 0, 49402 }, /* MULU.W (d16,PC),Dn */ +{ CPUFUNC(op_c0fb_0), 0, 49403 }, /* MULU.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c0fc_0), 0, 49404 }, /* MULU.W #.W,Dn */ +{ CPUFUNC(op_c100_1), 0, 49408 }, /* ABCD.B Dn,Dn */ +{ CPUFUNC(op_c108_1), 0, 49416 }, /* ABCD.B -(An),-(An) */ +{ CPUFUNC(op_c110_0), 0, 49424 }, /* AND.B Dn,(An) */ +{ CPUFUNC(op_c118_0), 0, 49432 }, /* AND.B Dn,(An)+ */ +{ CPUFUNC(op_c120_0), 0, 49440 }, /* AND.B Dn,-(An) */ +{ CPUFUNC(op_c128_0), 0, 49448 }, /* AND.B Dn,(d16,An) */ +{ CPUFUNC(op_c130_0), 0, 49456 }, /* AND.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c138_0), 0, 49464 }, /* AND.B Dn,(xxx).W */ +{ CPUFUNC(op_c139_0), 0, 49465 }, /* AND.B Dn,(xxx).L */ +{ CPUFUNC_FF(op_c140_0), 0, 49472 }, /* EXG.L Dn,Dn */ +{ CPUFUNC_FF(op_c148_0), 0, 49480 }, /* EXG.L An,An */ +{ CPUFUNC(op_c150_0), 0, 49488 }, /* AND.W Dn,(An) */ +{ CPUFUNC(op_c158_0), 0, 49496 }, /* AND.W Dn,(An)+ */ +{ CPUFUNC(op_c160_0), 0, 49504 }, /* AND.W Dn,-(An) */ +{ CPUFUNC(op_c168_0), 0, 49512 }, /* AND.W Dn,(d16,An) */ +{ CPUFUNC(op_c170_0), 0, 49520 }, /* AND.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c178_0), 0, 49528 }, /* AND.W Dn,(xxx).W */ +{ CPUFUNC(op_c179_0), 0, 49529 }, /* AND.W Dn,(xxx).L */ +{ CPUFUNC_FF(op_c188_0), 0, 49544 }, /* EXG.L Dn,An */ +{ CPUFUNC(op_c190_0), 0, 49552 }, /* AND.L Dn,(An) */ +{ CPUFUNC(op_c198_0), 0, 49560 }, /* AND.L Dn,(An)+ */ +{ CPUFUNC(op_c1a0_0), 0, 49568 }, /* AND.L Dn,-(An) */ +{ CPUFUNC(op_c1a8_0), 0, 49576 }, /* AND.L Dn,(d16,An) */ +{ CPUFUNC(op_c1b0_0), 0, 49584 }, /* AND.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c1b8_0), 0, 49592 }, /* AND.L Dn,(xxx).W */ +{ CPUFUNC(op_c1b9_0), 0, 49593 }, /* AND.L Dn,(xxx).L */ +{ CPUFUNC(op_c1c0_0), 0, 49600 }, /* MULS.W Dn,Dn */ +{ CPUFUNC(op_c1d0_0), 0, 49616 }, /* MULS.W (An),Dn */ +{ CPUFUNC(op_c1d8_0), 0, 49624 }, /* MULS.W (An)+,Dn */ +{ CPUFUNC(op_c1e0_0), 0, 49632 }, /* MULS.W -(An),Dn */ +{ CPUFUNC(op_c1e8_0), 0, 49640 }, /* MULS.W (d16,An),Dn */ +{ CPUFUNC(op_c1f0_0), 0, 49648 }, /* MULS.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c1f8_0), 0, 49656 }, /* MULS.W (xxx).W,Dn */ +{ CPUFUNC(op_c1f9_0), 0, 49657 }, /* MULS.W (xxx).L,Dn */ +{ CPUFUNC(op_c1fa_0), 0, 49658 }, /* MULS.W (d16,PC),Dn */ +{ CPUFUNC(op_c1fb_0), 0, 49659 }, /* MULS.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c1fc_0), 0, 49660 }, /* MULS.W #.W,Dn */ +{ CPUFUNC(op_d000_0), 0, 53248 }, /* ADD.B Dn,Dn */ +{ CPUFUNC(op_d010_0), 0, 53264 }, /* ADD.B (An),Dn */ +{ CPUFUNC(op_d018_0), 0, 53272 }, /* ADD.B (An)+,Dn */ +{ CPUFUNC(op_d020_0), 0, 53280 }, /* ADD.B -(An),Dn */ +{ CPUFUNC(op_d028_0), 0, 53288 }, /* ADD.B (d16,An),Dn */ +{ CPUFUNC(op_d030_0), 0, 53296 }, /* ADD.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_d038_0), 0, 53304 }, /* ADD.B (xxx).W,Dn */ +{ CPUFUNC(op_d039_0), 0, 53305 }, /* ADD.B (xxx).L,Dn */ +{ CPUFUNC(op_d03a_0), 0, 53306 }, /* ADD.B (d16,PC),Dn */ +{ CPUFUNC(op_d03b_0), 0, 53307 }, /* ADD.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d03c_0), 0, 53308 }, /* ADD.B #.B,Dn */ +{ CPUFUNC(op_d040_0), 0, 53312 }, /* ADD.W Dn,Dn */ +{ CPUFUNC(op_d048_0), 0, 53320 }, /* ADD.W An,Dn */ +{ CPUFUNC(op_d050_0), 0, 53328 }, /* ADD.W (An),Dn */ +{ CPUFUNC(op_d058_0), 0, 53336 }, /* ADD.W (An)+,Dn */ +{ CPUFUNC(op_d060_0), 0, 53344 }, /* ADD.W -(An),Dn */ +{ CPUFUNC(op_d068_0), 0, 53352 }, /* ADD.W (d16,An),Dn */ +{ CPUFUNC(op_d070_0), 0, 53360 }, /* ADD.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_d078_0), 0, 53368 }, /* ADD.W (xxx).W,Dn */ +{ CPUFUNC(op_d079_0), 0, 53369 }, /* ADD.W (xxx).L,Dn */ +{ CPUFUNC(op_d07a_0), 0, 53370 }, /* ADD.W (d16,PC),Dn */ +{ CPUFUNC(op_d07b_0), 0, 53371 }, /* ADD.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d07c_0), 0, 53372 }, /* ADD.W #.W,Dn */ +{ CPUFUNC(op_d080_0), 0, 53376 }, /* ADD.L Dn,Dn */ +{ CPUFUNC(op_d088_0), 0, 53384 }, /* ADD.L An,Dn */ +{ CPUFUNC(op_d090_0), 0, 53392 }, /* ADD.L (An),Dn */ +{ CPUFUNC(op_d098_0), 0, 53400 }, /* ADD.L (An)+,Dn */ +{ CPUFUNC(op_d0a0_0), 0, 53408 }, /* ADD.L -(An),Dn */ +{ CPUFUNC(op_d0a8_0), 0, 53416 }, /* ADD.L (d16,An),Dn */ +{ CPUFUNC(op_d0b0_0), 0, 53424 }, /* ADD.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_d0b8_0), 0, 53432 }, /* ADD.L (xxx).W,Dn */ +{ CPUFUNC(op_d0b9_0), 0, 53433 }, /* ADD.L (xxx).L,Dn */ +{ CPUFUNC(op_d0ba_0), 0, 53434 }, /* ADD.L (d16,PC),Dn */ +{ CPUFUNC(op_d0bb_0), 0, 53435 }, /* ADD.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d0bc_0), 0, 53436 }, /* ADD.L #.L,Dn */ +{ CPUFUNC_FF(op_d0c0_0), 0, 53440 }, /* ADDA.W Dn,An */ +{ CPUFUNC_FF(op_d0c8_0), 0, 53448 }, /* ADDA.W An,An */ +{ CPUFUNC_FF(op_d0d0_0), 0, 53456 }, /* ADDA.W (An),An */ +{ CPUFUNC_FF(op_d0d8_0), 0, 53464 }, /* ADDA.W (An)+,An */ +{ CPUFUNC_FF(op_d0e0_0), 0, 53472 }, /* ADDA.W -(An),An */ +{ CPUFUNC_FF(op_d0e8_0), 0, 53480 }, /* ADDA.W (d16,An),An */ +{ CPUFUNC_FF(op_d0f0_0), 0, 53488 }, /* ADDA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_d0f8_0), 0, 53496 }, /* ADDA.W (xxx).W,An */ +{ CPUFUNC_FF(op_d0f9_0), 0, 53497 }, /* ADDA.W (xxx).L,An */ +{ CPUFUNC_FF(op_d0fa_0), 0, 53498 }, /* ADDA.W (d16,PC),An */ +{ CPUFUNC_FF(op_d0fb_0), 0, 53499 }, /* ADDA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_d0fc_0), 0, 53500 }, /* ADDA.W #.W,An */ +{ CPUFUNC(op_d100_0), 0, 53504 }, /* ADDX.B Dn,Dn */ +{ CPUFUNC(op_d108_0), 0, 53512 }, /* ADDX.B -(An),-(An) */ +{ CPUFUNC(op_d110_0), 0, 53520 }, /* ADD.B Dn,(An) */ +{ CPUFUNC(op_d118_0), 0, 53528 }, /* ADD.B Dn,(An)+ */ +{ CPUFUNC(op_d120_0), 0, 53536 }, /* ADD.B Dn,-(An) */ +{ CPUFUNC(op_d128_0), 0, 53544 }, /* ADD.B Dn,(d16,An) */ +{ CPUFUNC(op_d130_0), 0, 53552 }, /* ADD.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d138_0), 0, 53560 }, /* ADD.B Dn,(xxx).W */ +{ CPUFUNC(op_d139_0), 0, 53561 }, /* ADD.B Dn,(xxx).L */ +{ CPUFUNC(op_d140_0), 0, 53568 }, /* ADDX.W Dn,Dn */ +{ CPUFUNC(op_d148_0), 0, 53576 }, /* ADDX.W -(An),-(An) */ +{ CPUFUNC(op_d150_0), 0, 53584 }, /* ADD.W Dn,(An) */ +{ CPUFUNC(op_d158_0), 0, 53592 }, /* ADD.W Dn,(An)+ */ +{ CPUFUNC(op_d160_0), 0, 53600 }, /* ADD.W Dn,-(An) */ +{ CPUFUNC(op_d168_0), 0, 53608 }, /* ADD.W Dn,(d16,An) */ +{ CPUFUNC(op_d170_0), 0, 53616 }, /* ADD.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d178_0), 0, 53624 }, /* ADD.W Dn,(xxx).W */ +{ CPUFUNC(op_d179_0), 0, 53625 }, /* ADD.W Dn,(xxx).L */ +{ CPUFUNC(op_d180_0), 0, 53632 }, /* ADDX.L Dn,Dn */ +{ CPUFUNC(op_d188_0), 0, 53640 }, /* ADDX.L -(An),-(An) */ +{ CPUFUNC(op_d190_0), 0, 53648 }, /* ADD.L Dn,(An) */ +{ CPUFUNC(op_d198_0), 0, 53656 }, /* ADD.L Dn,(An)+ */ +{ CPUFUNC(op_d1a0_0), 0, 53664 }, /* ADD.L Dn,-(An) */ +{ CPUFUNC(op_d1a8_0), 0, 53672 }, /* ADD.L Dn,(d16,An) */ +{ CPUFUNC(op_d1b0_0), 0, 53680 }, /* ADD.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d1b8_0), 0, 53688 }, /* ADD.L Dn,(xxx).W */ +{ CPUFUNC(op_d1b9_0), 0, 53689 }, /* ADD.L Dn,(xxx).L */ +{ CPUFUNC_FF(op_d1c0_0), 0, 53696 }, /* ADDA.L Dn,An */ +{ CPUFUNC_FF(op_d1c8_0), 0, 53704 }, /* ADDA.L An,An */ +{ CPUFUNC_FF(op_d1d0_0), 0, 53712 }, /* ADDA.L (An),An */ +{ CPUFUNC_FF(op_d1d8_0), 0, 53720 }, /* ADDA.L (An)+,An */ +{ CPUFUNC_FF(op_d1e0_0), 0, 53728 }, /* ADDA.L -(An),An */ +{ CPUFUNC_FF(op_d1e8_0), 0, 53736 }, /* ADDA.L (d16,An),An */ +{ CPUFUNC_FF(op_d1f0_0), 0, 53744 }, /* ADDA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_d1f8_0), 0, 53752 }, /* ADDA.L (xxx).W,An */ +{ CPUFUNC_FF(op_d1f9_0), 0, 53753 }, /* ADDA.L (xxx).L,An */ +{ CPUFUNC_FF(op_d1fa_0), 0, 53754 }, /* ADDA.L (d16,PC),An */ +{ CPUFUNC_FF(op_d1fb_0), 0, 53755 }, /* ADDA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_d1fc_0), 0, 53756 }, /* ADDA.L #.L,An */ +{ CPUFUNC(op_e000_0), 0, 57344 }, /* ASR.B #,Dn */ +{ CPUFUNC(op_e008_0), 0, 57352 }, /* LSR.B #,Dn */ +{ CPUFUNC(op_e010_0), 0, 57360 }, /* ROXR.B #,Dn */ +{ CPUFUNC(op_e018_0), 0, 57368 }, /* ROR.B #,Dn */ +{ CPUFUNC(op_e020_0), 0, 57376 }, /* ASR.B Dn,Dn */ +{ CPUFUNC(op_e028_0), 0, 57384 }, /* LSR.B Dn,Dn */ +{ CPUFUNC(op_e030_0), 0, 57392 }, /* ROXR.B Dn,Dn */ +{ CPUFUNC(op_e038_0), 0, 57400 }, /* ROR.B Dn,Dn */ +{ CPUFUNC(op_e040_0), 0, 57408 }, /* ASR.W #,Dn */ +{ CPUFUNC(op_e048_0), 0, 57416 }, /* LSR.W #,Dn */ +{ CPUFUNC(op_e050_0), 0, 57424 }, /* ROXR.W #,Dn */ +{ CPUFUNC(op_e058_0), 0, 57432 }, /* ROR.W #,Dn */ +{ CPUFUNC(op_e060_0), 0, 57440 }, /* ASR.W Dn,Dn */ +{ CPUFUNC(op_e068_0), 0, 57448 }, /* LSR.W Dn,Dn */ +{ CPUFUNC(op_e070_0), 0, 57456 }, /* ROXR.W Dn,Dn */ +{ CPUFUNC(op_e078_0), 0, 57464 }, /* ROR.W Dn,Dn */ +{ CPUFUNC(op_e080_0), 0, 57472 }, /* ASR.L #,Dn */ +{ CPUFUNC(op_e088_0), 0, 57480 }, /* LSR.L #,Dn */ +{ CPUFUNC(op_e090_0), 0, 57488 }, /* ROXR.L #,Dn */ +{ CPUFUNC(op_e098_0), 0, 57496 }, /* ROR.L #,Dn */ +{ CPUFUNC(op_e0a0_0), 0, 57504 }, /* ASR.L Dn,Dn */ +{ CPUFUNC(op_e0a8_0), 0, 57512 }, /* LSR.L Dn,Dn */ +{ CPUFUNC(op_e0b0_0), 0, 57520 }, /* ROXR.L Dn,Dn */ +{ CPUFUNC(op_e0b8_0), 0, 57528 }, /* ROR.L Dn,Dn */ +{ CPUFUNC(op_e0d0_0), 0, 57552 }, /* ASRW.W (An) */ +{ CPUFUNC(op_e0d8_0), 0, 57560 }, /* ASRW.W (An)+ */ +{ CPUFUNC(op_e0e0_0), 0, 57568 }, /* ASRW.W -(An) */ +{ CPUFUNC(op_e0e8_0), 0, 57576 }, /* ASRW.W (d16,An) */ +{ CPUFUNC(op_e0f0_0), 0, 57584 }, /* ASRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e0f8_0), 0, 57592 }, /* ASRW.W (xxx).W */ +{ CPUFUNC(op_e0f9_0), 0, 57593 }, /* ASRW.W (xxx).L */ +{ CPUFUNC(op_e100_0), 0, 57600 }, /* ASL.B #,Dn */ +{ CPUFUNC(op_e108_0), 0, 57608 }, /* LSL.B #,Dn */ +{ CPUFUNC(op_e110_0), 0, 57616 }, /* ROXL.B #,Dn */ +{ CPUFUNC(op_e118_0), 0, 57624 }, /* ROL.B #,Dn */ +{ CPUFUNC(op_e120_0), 0, 57632 }, /* ASL.B Dn,Dn */ +{ CPUFUNC(op_e128_0), 0, 57640 }, /* LSL.B Dn,Dn */ +{ CPUFUNC(op_e130_0), 0, 57648 }, /* ROXL.B Dn,Dn */ +{ CPUFUNC(op_e138_0), 0, 57656 }, /* ROL.B Dn,Dn */ +{ CPUFUNC(op_e140_0), 0, 57664 }, /* ASL.W #,Dn */ +{ CPUFUNC(op_e148_0), 0, 57672 }, /* LSL.W #,Dn */ +{ CPUFUNC(op_e150_0), 0, 57680 }, /* ROXL.W #,Dn */ +{ CPUFUNC(op_e158_0), 0, 57688 }, /* ROL.W #,Dn */ +{ CPUFUNC(op_e160_0), 0, 57696 }, /* ASL.W Dn,Dn */ +{ CPUFUNC(op_e168_0), 0, 57704 }, /* LSL.W Dn,Dn */ +{ CPUFUNC(op_e170_0), 0, 57712 }, /* ROXL.W Dn,Dn */ +{ CPUFUNC(op_e178_0), 0, 57720 }, /* ROL.W Dn,Dn */ +{ CPUFUNC(op_e180_0), 0, 57728 }, /* ASL.L #,Dn */ +{ CPUFUNC(op_e188_0), 0, 57736 }, /* LSL.L #,Dn */ +{ CPUFUNC(op_e190_0), 0, 57744 }, /* ROXL.L #,Dn */ +{ CPUFUNC(op_e198_0), 0, 57752 }, /* ROL.L #,Dn */ +{ CPUFUNC(op_e1a0_0), 0, 57760 }, /* ASL.L Dn,Dn */ +{ CPUFUNC(op_e1a8_0), 0, 57768 }, /* LSL.L Dn,Dn */ +{ CPUFUNC(op_e1b0_0), 0, 57776 }, /* ROXL.L Dn,Dn */ +{ CPUFUNC(op_e1b8_0), 0, 57784 }, /* ROL.L Dn,Dn */ +{ CPUFUNC(op_e1d0_0), 0, 57808 }, /* ASLW.W (An) */ +{ CPUFUNC(op_e1d8_0), 0, 57816 }, /* ASLW.W (An)+ */ +{ CPUFUNC(op_e1e0_0), 0, 57824 }, /* ASLW.W -(An) */ +{ CPUFUNC(op_e1e8_0), 0, 57832 }, /* ASLW.W (d16,An) */ +{ CPUFUNC(op_e1f0_0), 0, 57840 }, /* ASLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e1f8_0), 0, 57848 }, /* ASLW.W (xxx).W */ +{ CPUFUNC(op_e1f9_0), 0, 57849 }, /* ASLW.W (xxx).L */ +{ CPUFUNC(op_e2d0_0), 0, 58064 }, /* LSRW.W (An) */ +{ CPUFUNC(op_e2d8_0), 0, 58072 }, /* LSRW.W (An)+ */ +{ CPUFUNC(op_e2e0_0), 0, 58080 }, /* LSRW.W -(An) */ +{ CPUFUNC(op_e2e8_0), 0, 58088 }, /* LSRW.W (d16,An) */ +{ CPUFUNC(op_e2f0_0), 0, 58096 }, /* LSRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e2f8_0), 0, 58104 }, /* LSRW.W (xxx).W */ +{ CPUFUNC(op_e2f9_0), 0, 58105 }, /* LSRW.W (xxx).L */ +{ CPUFUNC(op_e3d0_0), 0, 58320 }, /* LSLW.W (An) */ +{ CPUFUNC(op_e3d8_0), 0, 58328 }, /* LSLW.W (An)+ */ +{ CPUFUNC(op_e3e0_0), 0, 58336 }, /* LSLW.W -(An) */ +{ CPUFUNC(op_e3e8_0), 0, 58344 }, /* LSLW.W (d16,An) */ +{ CPUFUNC(op_e3f0_0), 0, 58352 }, /* LSLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e3f8_0), 0, 58360 }, /* LSLW.W (xxx).W */ +{ CPUFUNC(op_e3f9_0), 0, 58361 }, /* LSLW.W (xxx).L */ +{ CPUFUNC(op_e4d0_0), 0, 58576 }, /* ROXRW.W (An) */ +{ CPUFUNC(op_e4d8_0), 0, 58584 }, /* ROXRW.W (An)+ */ +{ CPUFUNC(op_e4e0_0), 0, 58592 }, /* ROXRW.W -(An) */ +{ CPUFUNC(op_e4e8_0), 0, 58600 }, /* ROXRW.W (d16,An) */ +{ CPUFUNC(op_e4f0_0), 0, 58608 }, /* ROXRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e4f8_0), 0, 58616 }, /* ROXRW.W (xxx).W */ +{ CPUFUNC(op_e4f9_0), 0, 58617 }, /* ROXRW.W (xxx).L */ +{ CPUFUNC(op_e5d0_0), 0, 58832 }, /* ROXLW.W (An) */ +{ CPUFUNC(op_e5d8_0), 0, 58840 }, /* ROXLW.W (An)+ */ +{ CPUFUNC(op_e5e0_0), 0, 58848 }, /* ROXLW.W -(An) */ +{ CPUFUNC(op_e5e8_0), 0, 58856 }, /* ROXLW.W (d16,An) */ +{ CPUFUNC(op_e5f0_0), 0, 58864 }, /* ROXLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e5f8_0), 0, 58872 }, /* ROXLW.W (xxx).W */ +{ CPUFUNC(op_e5f9_0), 0, 58873 }, /* ROXLW.W (xxx).L */ +{ CPUFUNC(op_e6d0_0), 0, 59088 }, /* RORW.W (An) */ +{ CPUFUNC(op_e6d8_0), 0, 59096 }, /* RORW.W (An)+ */ +{ CPUFUNC(op_e6e0_0), 0, 59104 }, /* RORW.W -(An) */ +{ CPUFUNC(op_e6e8_0), 0, 59112 }, /* RORW.W (d16,An) */ +{ CPUFUNC(op_e6f0_0), 0, 59120 }, /* RORW.W (d8,An,Xn) */ +{ CPUFUNC(op_e6f8_0), 0, 59128 }, /* RORW.W (xxx).W */ +{ CPUFUNC(op_e6f9_0), 0, 59129 }, /* RORW.W (xxx).L */ +{ CPUFUNC(op_e7d0_0), 0, 59344 }, /* ROLW.W (An) */ +{ CPUFUNC(op_e7d8_0), 0, 59352 }, /* ROLW.W (An)+ */ +{ CPUFUNC(op_e7e0_0), 0, 59360 }, /* ROLW.W -(An) */ +{ CPUFUNC(op_e7e8_0), 0, 59368 }, /* ROLW.W (d16,An) */ +{ CPUFUNC(op_e7f0_0), 0, 59376 }, /* ROLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e7f8_0), 0, 59384 }, /* ROLW.W (xxx).W */ +{ CPUFUNC(op_e7f9_0), 0, 59385 }, /* ROLW.W (xxx).L */ +{ CPUFUNC(op_e8c0_0), 0, 59584 }, /* BFTST.L #.W,Dn */ +{ CPUFUNC(op_e8d0_0), 0, 59600 }, /* BFTST.L #.W,(An) */ +{ CPUFUNC(op_e8e8_0), 0, 59624 }, /* BFTST.L #.W,(d16,An) */ +{ CPUFUNC(op_e8f0_0), 0, 59632 }, /* BFTST.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_e8f8_0), 0, 59640 }, /* BFTST.L #.W,(xxx).W */ +{ CPUFUNC(op_e8f9_0), 0, 59641 }, /* BFTST.L #.W,(xxx).L */ +{ CPUFUNC(op_e8fa_0), 0, 59642 }, /* BFTST.L #.W,(d16,PC) */ +{ CPUFUNC(op_e8fb_0), 0, 59643 }, /* BFTST.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_e9c0_0), 0, 59840 }, /* BFEXTU.L #.W,Dn */ +{ CPUFUNC(op_e9d0_0), 0, 59856 }, /* BFEXTU.L #.W,(An) */ +{ CPUFUNC(op_e9e8_0), 0, 59880 }, /* BFEXTU.L #.W,(d16,An) */ +{ CPUFUNC(op_e9f0_0), 0, 59888 }, /* BFEXTU.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_e9f8_0), 0, 59896 }, /* BFEXTU.L #.W,(xxx).W */ +{ CPUFUNC(op_e9f9_0), 0, 59897 }, /* BFEXTU.L #.W,(xxx).L */ +{ CPUFUNC(op_e9fa_0), 0, 59898 }, /* BFEXTU.L #.W,(d16,PC) */ +{ CPUFUNC(op_e9fb_0), 0, 59899 }, /* BFEXTU.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_eac0_0), 0, 60096 }, /* BFCHG.L #.W,Dn */ +{ CPUFUNC(op_ead0_0), 0, 60112 }, /* BFCHG.L #.W,(An) */ +{ CPUFUNC(op_eae8_0), 0, 60136 }, /* BFCHG.L #.W,(d16,An) */ +{ CPUFUNC(op_eaf0_0), 0, 60144 }, /* BFCHG.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_eaf8_0), 0, 60152 }, /* BFCHG.L #.W,(xxx).W */ +{ CPUFUNC(op_eaf9_0), 0, 60153 }, /* BFCHG.L #.W,(xxx).L */ +{ CPUFUNC(op_ebc0_0), 0, 60352 }, /* BFEXTS.L #.W,Dn */ +{ CPUFUNC(op_ebd0_0), 0, 60368 }, /* BFEXTS.L #.W,(An) */ +{ CPUFUNC(op_ebe8_0), 0, 60392 }, /* BFEXTS.L #.W,(d16,An) */ +{ CPUFUNC(op_ebf0_0), 0, 60400 }, /* BFEXTS.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_ebf8_0), 0, 60408 }, /* BFEXTS.L #.W,(xxx).W */ +{ CPUFUNC(op_ebf9_0), 0, 60409 }, /* BFEXTS.L #.W,(xxx).L */ +{ CPUFUNC(op_ebfa_0), 0, 60410 }, /* BFEXTS.L #.W,(d16,PC) */ +{ CPUFUNC(op_ebfb_0), 0, 60411 }, /* BFEXTS.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_ecc0_0), 0, 60608 }, /* BFCLR.L #.W,Dn */ +{ CPUFUNC(op_ecd0_0), 0, 60624 }, /* BFCLR.L #.W,(An) */ +{ CPUFUNC(op_ece8_0), 0, 60648 }, /* BFCLR.L #.W,(d16,An) */ +{ CPUFUNC(op_ecf0_0), 0, 60656 }, /* BFCLR.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_ecf8_0), 0, 60664 }, /* BFCLR.L #.W,(xxx).W */ +{ CPUFUNC(op_ecf9_0), 0, 60665 }, /* BFCLR.L #.W,(xxx).L */ +{ CPUFUNC(op_edc0_0), 0, 60864 }, /* BFFFO.L #.W,Dn */ +{ CPUFUNC(op_edd0_0), 0, 60880 }, /* BFFFO.L #.W,(An) */ +{ CPUFUNC(op_ede8_0), 0, 60904 }, /* BFFFO.L #.W,(d16,An) */ +{ CPUFUNC(op_edf0_0), 0, 60912 }, /* BFFFO.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_edf8_0), 0, 60920 }, /* BFFFO.L #.W,(xxx).W */ +{ CPUFUNC(op_edf9_0), 0, 60921 }, /* BFFFO.L #.W,(xxx).L */ +{ CPUFUNC(op_edfa_0), 0, 60922 }, /* BFFFO.L #.W,(d16,PC) */ +{ CPUFUNC(op_edfb_0), 0, 60923 }, /* BFFFO.L #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_eec0_0), 0, 61120 }, /* BFSET.L #.W,Dn */ +{ CPUFUNC(op_eed0_0), 0, 61136 }, /* BFSET.L #.W,(An) */ +{ CPUFUNC(op_eee8_0), 0, 61160 }, /* BFSET.L #.W,(d16,An) */ +{ CPUFUNC(op_eef0_0), 0, 61168 }, /* BFSET.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_eef8_0), 0, 61176 }, /* BFSET.L #.W,(xxx).W */ +{ CPUFUNC(op_eef9_0), 0, 61177 }, /* BFSET.L #.W,(xxx).L */ +{ CPUFUNC(op_efc0_0), 0, 61376 }, /* BFINS.L #.W,Dn */ +{ CPUFUNC(op_efd0_0), 0, 61392 }, /* BFINS.L #.W,(An) */ +{ CPUFUNC(op_efe8_0), 0, 61416 }, /* BFINS.L #.W,(d16,An) */ +{ CPUFUNC(op_eff0_0), 0, 61424 }, /* BFINS.L #.W,(d8,An,Xn) */ +{ CPUFUNC(op_eff8_0), 0, 61432 }, /* BFINS.L #.W,(xxx).W */ +{ CPUFUNC(op_eff9_0), 0, 61433 }, /* BFINS.L #.W,(xxx).L */ +{ 0, 0, 0 }}; +struct cputbl CPUFUNC(op_smalltbl_3)[] = { +{ CPUFUNC(op_0_0), 0, 0 }, /* OR.B #.B,Dn */ +{ CPUFUNC(op_10_0), 0, 16 }, /* OR.B #.B,(An) */ +{ CPUFUNC(op_18_0), 0, 24 }, /* OR.B #.B,(An)+ */ +{ CPUFUNC(op_20_0), 0, 32 }, /* OR.B #.B,-(An) */ +{ CPUFUNC(op_28_0), 0, 40 }, /* OR.B #.B,(d16,An) */ +{ CPUFUNC(op_30_3), 0, 48 }, /* OR.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_38_0), 0, 56 }, /* OR.B #.B,(xxx).W */ +{ CPUFUNC(op_39_0), 0, 57 }, /* OR.B #.B,(xxx).L */ +{ CPUFUNC(op_3c_0), 0, 60 }, /* ORSR.B #.W */ +{ CPUFUNC(op_40_0), 0, 64 }, /* OR.W #.W,Dn */ +{ CPUFUNC(op_50_0), 0, 80 }, /* OR.W #.W,(An) */ +{ CPUFUNC(op_58_0), 0, 88 }, /* OR.W #.W,(An)+ */ +{ CPUFUNC(op_60_0), 0, 96 }, /* OR.W #.W,-(An) */ +{ CPUFUNC(op_68_0), 0, 104 }, /* OR.W #.W,(d16,An) */ +{ CPUFUNC(op_70_3), 0, 112 }, /* OR.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_78_0), 0, 120 }, /* OR.W #.W,(xxx).W */ +{ CPUFUNC(op_79_0), 0, 121 }, /* OR.W #.W,(xxx).L */ +{ CPUFUNC(op_7c_0), 0, 124 }, /* ORSR.W #.W */ +{ CPUFUNC(op_80_0), 0, 128 }, /* OR.L #.L,Dn */ +{ CPUFUNC(op_90_0), 0, 144 }, /* OR.L #.L,(An) */ +{ CPUFUNC(op_98_0), 0, 152 }, /* OR.L #.L,(An)+ */ +{ CPUFUNC(op_a0_0), 0, 160 }, /* OR.L #.L,-(An) */ +{ CPUFUNC(op_a8_0), 0, 168 }, /* OR.L #.L,(d16,An) */ +{ CPUFUNC(op_b0_3), 0, 176 }, /* OR.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_b8_0), 0, 184 }, /* OR.L #.L,(xxx).W */ +{ CPUFUNC(op_b9_0), 0, 185 }, /* OR.L #.L,(xxx).L */ +{ CPUFUNC(op_100_0), 0, 256 }, /* BTST.L Dn,Dn */ +{ CPUFUNC_FF(op_108_0), 0, 264 }, /* MVPMR.W (d16,An),Dn */ +{ CPUFUNC(op_110_0), 0, 272 }, /* BTST.B Dn,(An) */ +{ CPUFUNC(op_118_0), 0, 280 }, /* BTST.B Dn,(An)+ */ +{ CPUFUNC(op_120_0), 0, 288 }, /* BTST.B Dn,-(An) */ +{ CPUFUNC(op_128_0), 0, 296 }, /* BTST.B Dn,(d16,An) */ +{ CPUFUNC(op_130_3), 0, 304 }, /* BTST.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_138_0), 0, 312 }, /* BTST.B Dn,(xxx).W */ +{ CPUFUNC(op_139_0), 0, 313 }, /* BTST.B Dn,(xxx).L */ +{ CPUFUNC(op_13a_0), 0, 314 }, /* BTST.B Dn,(d16,PC) */ +{ CPUFUNC(op_13b_3), 0, 315 }, /* BTST.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_13c_0), 0, 316 }, /* BTST.B Dn,#.B */ +{ CPUFUNC(op_140_0), 0, 320 }, /* BCHG.L Dn,Dn */ +{ CPUFUNC_FF(op_148_0), 0, 328 }, /* MVPMR.L (d16,An),Dn */ +{ CPUFUNC(op_150_0), 0, 336 }, /* BCHG.B Dn,(An) */ +{ CPUFUNC(op_158_0), 0, 344 }, /* BCHG.B Dn,(An)+ */ +{ CPUFUNC(op_160_0), 0, 352 }, /* BCHG.B Dn,-(An) */ +{ CPUFUNC(op_168_0), 0, 360 }, /* BCHG.B Dn,(d16,An) */ +{ CPUFUNC(op_170_3), 0, 368 }, /* BCHG.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_178_0), 0, 376 }, /* BCHG.B Dn,(xxx).W */ +{ CPUFUNC(op_179_0), 0, 377 }, /* BCHG.B Dn,(xxx).L */ +{ CPUFUNC(op_17a_0), 0, 378 }, /* BCHG.B Dn,(d16,PC) */ +{ CPUFUNC(op_17b_3), 0, 379 }, /* BCHG.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_180_0), 0, 384 }, /* BCLR.L Dn,Dn */ +{ CPUFUNC_FF(op_188_0), 0, 392 }, /* MVPRM.W Dn,(d16,An) */ +{ CPUFUNC(op_190_0), 0, 400 }, /* BCLR.B Dn,(An) */ +{ CPUFUNC(op_198_0), 0, 408 }, /* BCLR.B Dn,(An)+ */ +{ CPUFUNC(op_1a0_0), 0, 416 }, /* BCLR.B Dn,-(An) */ +{ CPUFUNC(op_1a8_0), 0, 424 }, /* BCLR.B Dn,(d16,An) */ +{ CPUFUNC(op_1b0_3), 0, 432 }, /* BCLR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1b8_0), 0, 440 }, /* BCLR.B Dn,(xxx).W */ +{ CPUFUNC(op_1b9_0), 0, 441 }, /* BCLR.B Dn,(xxx).L */ +{ CPUFUNC(op_1ba_0), 0, 442 }, /* BCLR.B Dn,(d16,PC) */ +{ CPUFUNC(op_1bb_3), 0, 443 }, /* BCLR.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_1c0_0), 0, 448 }, /* BSET.L Dn,Dn */ +{ CPUFUNC_FF(op_1c8_0), 0, 456 }, /* MVPRM.L Dn,(d16,An) */ +{ CPUFUNC(op_1d0_0), 0, 464 }, /* BSET.B Dn,(An) */ +{ CPUFUNC(op_1d8_0), 0, 472 }, /* BSET.B Dn,(An)+ */ +{ CPUFUNC(op_1e0_0), 0, 480 }, /* BSET.B Dn,-(An) */ +{ CPUFUNC(op_1e8_0), 0, 488 }, /* BSET.B Dn,(d16,An) */ +{ CPUFUNC(op_1f0_3), 0, 496 }, /* BSET.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1f8_0), 0, 504 }, /* BSET.B Dn,(xxx).W */ +{ CPUFUNC(op_1f9_0), 0, 505 }, /* BSET.B Dn,(xxx).L */ +{ CPUFUNC(op_1fa_0), 0, 506 }, /* BSET.B Dn,(d16,PC) */ +{ CPUFUNC(op_1fb_3), 0, 507 }, /* BSET.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_200_0), 0, 512 }, /* AND.B #.B,Dn */ +{ CPUFUNC(op_210_0), 0, 528 }, /* AND.B #.B,(An) */ +{ CPUFUNC(op_218_0), 0, 536 }, /* AND.B #.B,(An)+ */ +{ CPUFUNC(op_220_0), 0, 544 }, /* AND.B #.B,-(An) */ +{ CPUFUNC(op_228_0), 0, 552 }, /* AND.B #.B,(d16,An) */ +{ CPUFUNC(op_230_3), 0, 560 }, /* AND.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_238_0), 0, 568 }, /* AND.B #.B,(xxx).W */ +{ CPUFUNC(op_239_0), 0, 569 }, /* AND.B #.B,(xxx).L */ +{ CPUFUNC(op_23c_0), 0, 572 }, /* ANDSR.B #.W */ +{ CPUFUNC(op_240_0), 0, 576 }, /* AND.W #.W,Dn */ +{ CPUFUNC(op_250_0), 0, 592 }, /* AND.W #.W,(An) */ +{ CPUFUNC(op_258_0), 0, 600 }, /* AND.W #.W,(An)+ */ +{ CPUFUNC(op_260_0), 0, 608 }, /* AND.W #.W,-(An) */ +{ CPUFUNC(op_268_0), 0, 616 }, /* AND.W #.W,(d16,An) */ +{ CPUFUNC(op_270_3), 0, 624 }, /* AND.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_278_0), 0, 632 }, /* AND.W #.W,(xxx).W */ +{ CPUFUNC(op_279_0), 0, 633 }, /* AND.W #.W,(xxx).L */ +{ CPUFUNC(op_27c_0), 0, 636 }, /* ANDSR.W #.W */ +{ CPUFUNC(op_280_0), 0, 640 }, /* AND.L #.L,Dn */ +{ CPUFUNC(op_290_0), 0, 656 }, /* AND.L #.L,(An) */ +{ CPUFUNC(op_298_0), 0, 664 }, /* AND.L #.L,(An)+ */ +{ CPUFUNC(op_2a0_0), 0, 672 }, /* AND.L #.L,-(An) */ +{ CPUFUNC(op_2a8_0), 0, 680 }, /* AND.L #.L,(d16,An) */ +{ CPUFUNC(op_2b0_3), 0, 688 }, /* AND.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_2b8_0), 0, 696 }, /* AND.L #.L,(xxx).W */ +{ CPUFUNC(op_2b9_0), 0, 697 }, /* AND.L #.L,(xxx).L */ +{ CPUFUNC(op_400_0), 0, 1024 }, /* SUB.B #.B,Dn */ +{ CPUFUNC(op_410_0), 0, 1040 }, /* SUB.B #.B,(An) */ +{ CPUFUNC(op_418_0), 0, 1048 }, /* SUB.B #.B,(An)+ */ +{ CPUFUNC(op_420_0), 0, 1056 }, /* SUB.B #.B,-(An) */ +{ CPUFUNC(op_428_0), 0, 1064 }, /* SUB.B #.B,(d16,An) */ +{ CPUFUNC(op_430_3), 0, 1072 }, /* SUB.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_438_0), 0, 1080 }, /* SUB.B #.B,(xxx).W */ +{ CPUFUNC(op_439_0), 0, 1081 }, /* SUB.B #.B,(xxx).L */ +{ CPUFUNC(op_440_0), 0, 1088 }, /* SUB.W #.W,Dn */ +{ CPUFUNC(op_450_0), 0, 1104 }, /* SUB.W #.W,(An) */ +{ CPUFUNC(op_458_0), 0, 1112 }, /* SUB.W #.W,(An)+ */ +{ CPUFUNC(op_460_0), 0, 1120 }, /* SUB.W #.W,-(An) */ +{ CPUFUNC(op_468_0), 0, 1128 }, /* SUB.W #.W,(d16,An) */ +{ CPUFUNC(op_470_3), 0, 1136 }, /* SUB.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_478_0), 0, 1144 }, /* SUB.W #.W,(xxx).W */ +{ CPUFUNC(op_479_0), 0, 1145 }, /* SUB.W #.W,(xxx).L */ +{ CPUFUNC(op_480_0), 0, 1152 }, /* SUB.L #.L,Dn */ +{ CPUFUNC(op_490_0), 0, 1168 }, /* SUB.L #.L,(An) */ +{ CPUFUNC(op_498_0), 0, 1176 }, /* SUB.L #.L,(An)+ */ +{ CPUFUNC(op_4a0_0), 0, 1184 }, /* SUB.L #.L,-(An) */ +{ CPUFUNC(op_4a8_0), 0, 1192 }, /* SUB.L #.L,(d16,An) */ +{ CPUFUNC(op_4b0_3), 0, 1200 }, /* SUB.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_4b8_0), 0, 1208 }, /* SUB.L #.L,(xxx).W */ +{ CPUFUNC(op_4b9_0), 0, 1209 }, /* SUB.L #.L,(xxx).L */ +{ CPUFUNC(op_600_0), 0, 1536 }, /* ADD.B #.B,Dn */ +{ CPUFUNC(op_610_0), 0, 1552 }, /* ADD.B #.B,(An) */ +{ CPUFUNC(op_618_0), 0, 1560 }, /* ADD.B #.B,(An)+ */ +{ CPUFUNC(op_620_0), 0, 1568 }, /* ADD.B #.B,-(An) */ +{ CPUFUNC(op_628_0), 0, 1576 }, /* ADD.B #.B,(d16,An) */ +{ CPUFUNC(op_630_3), 0, 1584 }, /* ADD.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_638_0), 0, 1592 }, /* ADD.B #.B,(xxx).W */ +{ CPUFUNC(op_639_0), 0, 1593 }, /* ADD.B #.B,(xxx).L */ +{ CPUFUNC(op_640_0), 0, 1600 }, /* ADD.W #.W,Dn */ +{ CPUFUNC(op_650_0), 0, 1616 }, /* ADD.W #.W,(An) */ +{ CPUFUNC(op_658_0), 0, 1624 }, /* ADD.W #.W,(An)+ */ +{ CPUFUNC(op_660_0), 0, 1632 }, /* ADD.W #.W,-(An) */ +{ CPUFUNC(op_668_0), 0, 1640 }, /* ADD.W #.W,(d16,An) */ +{ CPUFUNC(op_670_3), 0, 1648 }, /* ADD.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_678_0), 0, 1656 }, /* ADD.W #.W,(xxx).W */ +{ CPUFUNC(op_679_0), 0, 1657 }, /* ADD.W #.W,(xxx).L */ +{ CPUFUNC(op_680_0), 0, 1664 }, /* ADD.L #.L,Dn */ +{ CPUFUNC(op_690_0), 0, 1680 }, /* ADD.L #.L,(An) */ +{ CPUFUNC(op_698_0), 0, 1688 }, /* ADD.L #.L,(An)+ */ +{ CPUFUNC(op_6a0_0), 0, 1696 }, /* ADD.L #.L,-(An) */ +{ CPUFUNC(op_6a8_0), 0, 1704 }, /* ADD.L #.L,(d16,An) */ +{ CPUFUNC(op_6b0_3), 0, 1712 }, /* ADD.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_6b8_0), 0, 1720 }, /* ADD.L #.L,(xxx).W */ +{ CPUFUNC(op_6b9_0), 0, 1721 }, /* ADD.L #.L,(xxx).L */ +{ CPUFUNC(op_800_0), 0, 2048 }, /* BTST.L #.W,Dn */ +{ CPUFUNC(op_810_0), 0, 2064 }, /* BTST.B #.W,(An) */ +{ CPUFUNC(op_818_0), 0, 2072 }, /* BTST.B #.W,(An)+ */ +{ CPUFUNC(op_820_0), 0, 2080 }, /* BTST.B #.W,-(An) */ +{ CPUFUNC(op_828_0), 0, 2088 }, /* BTST.B #.W,(d16,An) */ +{ CPUFUNC(op_830_3), 0, 2096 }, /* BTST.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_838_0), 0, 2104 }, /* BTST.B #.W,(xxx).W */ +{ CPUFUNC(op_839_0), 0, 2105 }, /* BTST.B #.W,(xxx).L */ +{ CPUFUNC(op_83a_0), 0, 2106 }, /* BTST.B #.W,(d16,PC) */ +{ CPUFUNC(op_83b_3), 0, 2107 }, /* BTST.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_83c_0), 0, 2108 }, /* BTST.B #.W,#.B */ +{ CPUFUNC(op_840_0), 0, 2112 }, /* BCHG.L #.W,Dn */ +{ CPUFUNC(op_850_0), 0, 2128 }, /* BCHG.B #.W,(An) */ +{ CPUFUNC(op_858_0), 0, 2136 }, /* BCHG.B #.W,(An)+ */ +{ CPUFUNC(op_860_0), 0, 2144 }, /* BCHG.B #.W,-(An) */ +{ CPUFUNC(op_868_0), 0, 2152 }, /* BCHG.B #.W,(d16,An) */ +{ CPUFUNC(op_870_3), 0, 2160 }, /* BCHG.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_878_0), 0, 2168 }, /* BCHG.B #.W,(xxx).W */ +{ CPUFUNC(op_879_0), 0, 2169 }, /* BCHG.B #.W,(xxx).L */ +{ CPUFUNC(op_87a_0), 0, 2170 }, /* BCHG.B #.W,(d16,PC) */ +{ CPUFUNC(op_87b_3), 0, 2171 }, /* BCHG.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_880_0), 0, 2176 }, /* BCLR.L #.W,Dn */ +{ CPUFUNC(op_890_0), 0, 2192 }, /* BCLR.B #.W,(An) */ +{ CPUFUNC(op_898_0), 0, 2200 }, /* BCLR.B #.W,(An)+ */ +{ CPUFUNC(op_8a0_0), 0, 2208 }, /* BCLR.B #.W,-(An) */ +{ CPUFUNC(op_8a8_0), 0, 2216 }, /* BCLR.B #.W,(d16,An) */ +{ CPUFUNC(op_8b0_3), 0, 2224 }, /* BCLR.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_8b8_0), 0, 2232 }, /* BCLR.B #.W,(xxx).W */ +{ CPUFUNC(op_8b9_0), 0, 2233 }, /* BCLR.B #.W,(xxx).L */ +{ CPUFUNC(op_8ba_0), 0, 2234 }, /* BCLR.B #.W,(d16,PC) */ +{ CPUFUNC(op_8bb_3), 0, 2235 }, /* BCLR.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_8c0_0), 0, 2240 }, /* BSET.L #.W,Dn */ +{ CPUFUNC(op_8d0_0), 0, 2256 }, /* BSET.B #.W,(An) */ +{ CPUFUNC(op_8d8_0), 0, 2264 }, /* BSET.B #.W,(An)+ */ +{ CPUFUNC(op_8e0_0), 0, 2272 }, /* BSET.B #.W,-(An) */ +{ CPUFUNC(op_8e8_0), 0, 2280 }, /* BSET.B #.W,(d16,An) */ +{ CPUFUNC(op_8f0_3), 0, 2288 }, /* BSET.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_8f8_0), 0, 2296 }, /* BSET.B #.W,(xxx).W */ +{ CPUFUNC(op_8f9_0), 0, 2297 }, /* BSET.B #.W,(xxx).L */ +{ CPUFUNC(op_8fa_0), 0, 2298 }, /* BSET.B #.W,(d16,PC) */ +{ CPUFUNC(op_8fb_3), 0, 2299 }, /* BSET.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_a00_0), 0, 2560 }, /* EOR.B #.B,Dn */ +{ CPUFUNC(op_a10_0), 0, 2576 }, /* EOR.B #.B,(An) */ +{ CPUFUNC(op_a18_0), 0, 2584 }, /* EOR.B #.B,(An)+ */ +{ CPUFUNC(op_a20_0), 0, 2592 }, /* EOR.B #.B,-(An) */ +{ CPUFUNC(op_a28_0), 0, 2600 }, /* EOR.B #.B,(d16,An) */ +{ CPUFUNC(op_a30_3), 0, 2608 }, /* EOR.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_a38_0), 0, 2616 }, /* EOR.B #.B,(xxx).W */ +{ CPUFUNC(op_a39_0), 0, 2617 }, /* EOR.B #.B,(xxx).L */ +{ CPUFUNC(op_a3c_0), 0, 2620 }, /* EORSR.B #.W */ +{ CPUFUNC(op_a40_0), 0, 2624 }, /* EOR.W #.W,Dn */ +{ CPUFUNC(op_a50_0), 0, 2640 }, /* EOR.W #.W,(An) */ +{ CPUFUNC(op_a58_0), 0, 2648 }, /* EOR.W #.W,(An)+ */ +{ CPUFUNC(op_a60_0), 0, 2656 }, /* EOR.W #.W,-(An) */ +{ CPUFUNC(op_a68_0), 0, 2664 }, /* EOR.W #.W,(d16,An) */ +{ CPUFUNC(op_a70_3), 0, 2672 }, /* EOR.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_a78_0), 0, 2680 }, /* EOR.W #.W,(xxx).W */ +{ CPUFUNC(op_a79_0), 0, 2681 }, /* EOR.W #.W,(xxx).L */ +{ CPUFUNC(op_a7c_0), 0, 2684 }, /* EORSR.W #.W */ +{ CPUFUNC(op_a80_0), 0, 2688 }, /* EOR.L #.L,Dn */ +{ CPUFUNC(op_a90_0), 0, 2704 }, /* EOR.L #.L,(An) */ +{ CPUFUNC(op_a98_0), 0, 2712 }, /* EOR.L #.L,(An)+ */ +{ CPUFUNC(op_aa0_0), 0, 2720 }, /* EOR.L #.L,-(An) */ +{ CPUFUNC(op_aa8_0), 0, 2728 }, /* EOR.L #.L,(d16,An) */ +{ CPUFUNC(op_ab0_3), 0, 2736 }, /* EOR.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_ab8_0), 0, 2744 }, /* EOR.L #.L,(xxx).W */ +{ CPUFUNC(op_ab9_0), 0, 2745 }, /* EOR.L #.L,(xxx).L */ +{ CPUFUNC(op_c00_0), 0, 3072 }, /* CMP.B #.B,Dn */ +{ CPUFUNC(op_c10_0), 0, 3088 }, /* CMP.B #.B,(An) */ +{ CPUFUNC(op_c18_0), 0, 3096 }, /* CMP.B #.B,(An)+ */ +{ CPUFUNC(op_c20_0), 0, 3104 }, /* CMP.B #.B,-(An) */ +{ CPUFUNC(op_c28_0), 0, 3112 }, /* CMP.B #.B,(d16,An) */ +{ CPUFUNC(op_c30_3), 0, 3120 }, /* CMP.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_c38_0), 0, 3128 }, /* CMP.B #.B,(xxx).W */ +{ CPUFUNC(op_c39_0), 0, 3129 }, /* CMP.B #.B,(xxx).L */ +{ CPUFUNC(op_c3a_0), 0, 3130 }, /* CMP.B #.B,(d16,PC) */ +{ CPUFUNC(op_c3b_3), 0, 3131 }, /* CMP.B #.B,(d8,PC,Xn) */ +{ CPUFUNC(op_c40_0), 0, 3136 }, /* CMP.W #.W,Dn */ +{ CPUFUNC(op_c50_0), 0, 3152 }, /* CMP.W #.W,(An) */ +{ CPUFUNC(op_c58_0), 0, 3160 }, /* CMP.W #.W,(An)+ */ +{ CPUFUNC(op_c60_0), 0, 3168 }, /* CMP.W #.W,-(An) */ +{ CPUFUNC(op_c68_0), 0, 3176 }, /* CMP.W #.W,(d16,An) */ +{ CPUFUNC(op_c70_3), 0, 3184 }, /* CMP.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_c78_0), 0, 3192 }, /* CMP.W #.W,(xxx).W */ +{ CPUFUNC(op_c79_0), 0, 3193 }, /* CMP.W #.W,(xxx).L */ +{ CPUFUNC(op_c7a_0), 0, 3194 }, /* CMP.W #.W,(d16,PC) */ +{ CPUFUNC(op_c7b_3), 0, 3195 }, /* CMP.W #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_c80_0), 0, 3200 }, /* CMP.L #.L,Dn */ +{ CPUFUNC(op_c90_0), 0, 3216 }, /* CMP.L #.L,(An) */ +{ CPUFUNC(op_c98_0), 0, 3224 }, /* CMP.L #.L,(An)+ */ +{ CPUFUNC(op_ca0_0), 0, 3232 }, /* CMP.L #.L,-(An) */ +{ CPUFUNC(op_ca8_0), 0, 3240 }, /* CMP.L #.L,(d16,An) */ +{ CPUFUNC(op_cb0_3), 0, 3248 }, /* CMP.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_cb8_0), 0, 3256 }, /* CMP.L #.L,(xxx).W */ +{ CPUFUNC(op_cb9_0), 0, 3257 }, /* CMP.L #.L,(xxx).L */ +{ CPUFUNC(op_cba_0), 0, 3258 }, /* CMP.L #.L,(d16,PC) */ +{ CPUFUNC(op_cbb_3), 0, 3259 }, /* CMP.L #.L,(d8,PC,Xn) */ +{ CPUFUNC(op_1000_0), 0, 4096 }, /* MOVE.B Dn,Dn */ +{ CPUFUNC(op_1010_0), 0, 4112 }, /* MOVE.B (An),Dn */ +{ CPUFUNC(op_1018_0), 0, 4120 }, /* MOVE.B (An)+,Dn */ +{ CPUFUNC(op_1020_0), 0, 4128 }, /* MOVE.B -(An),Dn */ +{ CPUFUNC(op_1028_0), 0, 4136 }, /* MOVE.B (d16,An),Dn */ +{ CPUFUNC(op_1030_3), 0, 4144 }, /* MOVE.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_1038_0), 0, 4152 }, /* MOVE.B (xxx).W,Dn */ +{ CPUFUNC(op_1039_0), 0, 4153 }, /* MOVE.B (xxx).L,Dn */ +{ CPUFUNC(op_103a_0), 0, 4154 }, /* MOVE.B (d16,PC),Dn */ +{ CPUFUNC(op_103b_3), 0, 4155 }, /* MOVE.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_103c_0), 0, 4156 }, /* MOVE.B #.B,Dn */ +{ CPUFUNC(op_1080_0), 0, 4224 }, /* MOVE.B Dn,(An) */ +{ CPUFUNC(op_1090_0), 0, 4240 }, /* MOVE.B (An),(An) */ +{ CPUFUNC(op_1098_0), 0, 4248 }, /* MOVE.B (An)+,(An) */ +{ CPUFUNC(op_10a0_0), 0, 4256 }, /* MOVE.B -(An),(An) */ +{ CPUFUNC(op_10a8_0), 0, 4264 }, /* MOVE.B (d16,An),(An) */ +{ CPUFUNC(op_10b0_3), 0, 4272 }, /* MOVE.B (d8,An,Xn),(An) */ +{ CPUFUNC(op_10b8_0), 0, 4280 }, /* MOVE.B (xxx).W,(An) */ +{ CPUFUNC(op_10b9_0), 0, 4281 }, /* MOVE.B (xxx).L,(An) */ +{ CPUFUNC(op_10ba_0), 0, 4282 }, /* MOVE.B (d16,PC),(An) */ +{ CPUFUNC(op_10bb_3), 0, 4283 }, /* MOVE.B (d8,PC,Xn),(An) */ +{ CPUFUNC(op_10bc_0), 0, 4284 }, /* MOVE.B #.B,(An) */ +{ CPUFUNC(op_10c0_0), 0, 4288 }, /* MOVE.B Dn,(An)+ */ +{ CPUFUNC(op_10d0_0), 0, 4304 }, /* MOVE.B (An),(An)+ */ +{ CPUFUNC(op_10d8_0), 0, 4312 }, /* MOVE.B (An)+,(An)+ */ +{ CPUFUNC(op_10e0_0), 0, 4320 }, /* MOVE.B -(An),(An)+ */ +{ CPUFUNC(op_10e8_0), 0, 4328 }, /* MOVE.B (d16,An),(An)+ */ +{ CPUFUNC(op_10f0_3), 0, 4336 }, /* MOVE.B (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_10f8_0), 0, 4344 }, /* MOVE.B (xxx).W,(An)+ */ +{ CPUFUNC(op_10f9_0), 0, 4345 }, /* MOVE.B (xxx).L,(An)+ */ +{ CPUFUNC(op_10fa_0), 0, 4346 }, /* MOVE.B (d16,PC),(An)+ */ +{ CPUFUNC(op_10fb_3), 0, 4347 }, /* MOVE.B (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_10fc_0), 0, 4348 }, /* MOVE.B #.B,(An)+ */ +{ CPUFUNC(op_1100_0), 0, 4352 }, /* MOVE.B Dn,-(An) */ +{ CPUFUNC(op_1110_0), 0, 4368 }, /* MOVE.B (An),-(An) */ +{ CPUFUNC(op_1118_0), 0, 4376 }, /* MOVE.B (An)+,-(An) */ +{ CPUFUNC(op_1120_0), 0, 4384 }, /* MOVE.B -(An),-(An) */ +{ CPUFUNC(op_1128_0), 0, 4392 }, /* MOVE.B (d16,An),-(An) */ +{ CPUFUNC(op_1130_3), 0, 4400 }, /* MOVE.B (d8,An,Xn),-(An) */ +{ CPUFUNC(op_1138_0), 0, 4408 }, /* MOVE.B (xxx).W,-(An) */ +{ CPUFUNC(op_1139_0), 0, 4409 }, /* MOVE.B (xxx).L,-(An) */ +{ CPUFUNC(op_113a_0), 0, 4410 }, /* MOVE.B (d16,PC),-(An) */ +{ CPUFUNC(op_113b_3), 0, 4411 }, /* MOVE.B (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_113c_0), 0, 4412 }, /* MOVE.B #.B,-(An) */ +{ CPUFUNC(op_1140_0), 0, 4416 }, /* MOVE.B Dn,(d16,An) */ +{ CPUFUNC(op_1150_0), 0, 4432 }, /* MOVE.B (An),(d16,An) */ +{ CPUFUNC(op_1158_0), 0, 4440 }, /* MOVE.B (An)+,(d16,An) */ +{ CPUFUNC(op_1160_0), 0, 4448 }, /* MOVE.B -(An),(d16,An) */ +{ CPUFUNC(op_1168_0), 0, 4456 }, /* MOVE.B (d16,An),(d16,An) */ +{ CPUFUNC(op_1170_3), 0, 4464 }, /* MOVE.B (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_1178_0), 0, 4472 }, /* MOVE.B (xxx).W,(d16,An) */ +{ CPUFUNC(op_1179_0), 0, 4473 }, /* MOVE.B (xxx).L,(d16,An) */ +{ CPUFUNC(op_117a_0), 0, 4474 }, /* MOVE.B (d16,PC),(d16,An) */ +{ CPUFUNC(op_117b_3), 0, 4475 }, /* MOVE.B (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_117c_0), 0, 4476 }, /* MOVE.B #.B,(d16,An) */ +{ CPUFUNC(op_1180_3), 0, 4480 }, /* MOVE.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1190_3), 0, 4496 }, /* MOVE.B (An),(d8,An,Xn) */ +{ CPUFUNC(op_1198_3), 0, 4504 }, /* MOVE.B (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_11a0_3), 0, 4512 }, /* MOVE.B -(An),(d8,An,Xn) */ +{ CPUFUNC(op_11a8_3), 0, 4520 }, /* MOVE.B (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_11b0_3), 0, 4528 }, /* MOVE.B (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_11b8_3), 0, 4536 }, /* MOVE.B (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_11b9_3), 0, 4537 }, /* MOVE.B (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_11ba_3), 0, 4538 }, /* MOVE.B (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_11bb_3), 0, 4539 }, /* MOVE.B (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_11bc_3), 0, 4540 }, /* MOVE.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_11c0_0), 0, 4544 }, /* MOVE.B Dn,(xxx).W */ +{ CPUFUNC(op_11d0_0), 0, 4560 }, /* MOVE.B (An),(xxx).W */ +{ CPUFUNC(op_11d8_0), 0, 4568 }, /* MOVE.B (An)+,(xxx).W */ +{ CPUFUNC(op_11e0_0), 0, 4576 }, /* MOVE.B -(An),(xxx).W */ +{ CPUFUNC(op_11e8_0), 0, 4584 }, /* MOVE.B (d16,An),(xxx).W */ +{ CPUFUNC(op_11f0_3), 0, 4592 }, /* MOVE.B (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_11f8_0), 0, 4600 }, /* MOVE.B (xxx).W,(xxx).W */ +{ CPUFUNC(op_11f9_0), 0, 4601 }, /* MOVE.B (xxx).L,(xxx).W */ +{ CPUFUNC(op_11fa_0), 0, 4602 }, /* MOVE.B (d16,PC),(xxx).W */ +{ CPUFUNC(op_11fb_3), 0, 4603 }, /* MOVE.B (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_11fc_0), 0, 4604 }, /* MOVE.B #.B,(xxx).W */ +{ CPUFUNC(op_13c0_0), 0, 5056 }, /* MOVE.B Dn,(xxx).L */ +{ CPUFUNC(op_13d0_0), 0, 5072 }, /* MOVE.B (An),(xxx).L */ +{ CPUFUNC(op_13d8_0), 0, 5080 }, /* MOVE.B (An)+,(xxx).L */ +{ CPUFUNC(op_13e0_0), 0, 5088 }, /* MOVE.B -(An),(xxx).L */ +{ CPUFUNC(op_13e8_0), 0, 5096 }, /* MOVE.B (d16,An),(xxx).L */ +{ CPUFUNC(op_13f0_3), 0, 5104 }, /* MOVE.B (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_13f8_0), 0, 5112 }, /* MOVE.B (xxx).W,(xxx).L */ +{ CPUFUNC(op_13f9_0), 0, 5113 }, /* MOVE.B (xxx).L,(xxx).L */ +{ CPUFUNC(op_13fa_0), 0, 5114 }, /* MOVE.B (d16,PC),(xxx).L */ +{ CPUFUNC(op_13fb_3), 0, 5115 }, /* MOVE.B (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_13fc_0), 0, 5116 }, /* MOVE.B #.B,(xxx).L */ +{ CPUFUNC(op_2000_0), 0, 8192 }, /* MOVE.L Dn,Dn */ +{ CPUFUNC(op_2008_0), 0, 8200 }, /* MOVE.L An,Dn */ +{ CPUFUNC(op_2010_0), 0, 8208 }, /* MOVE.L (An),Dn */ +{ CPUFUNC(op_2018_0), 0, 8216 }, /* MOVE.L (An)+,Dn */ +{ CPUFUNC(op_2020_0), 0, 8224 }, /* MOVE.L -(An),Dn */ +{ CPUFUNC(op_2028_0), 0, 8232 }, /* MOVE.L (d16,An),Dn */ +{ CPUFUNC(op_2030_3), 0, 8240 }, /* MOVE.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_2038_0), 0, 8248 }, /* MOVE.L (xxx).W,Dn */ +{ CPUFUNC(op_2039_0), 0, 8249 }, /* MOVE.L (xxx).L,Dn */ +{ CPUFUNC(op_203a_0), 0, 8250 }, /* MOVE.L (d16,PC),Dn */ +{ CPUFUNC(op_203b_3), 0, 8251 }, /* MOVE.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_203c_0), 0, 8252 }, /* MOVE.L #.L,Dn */ +{ CPUFUNC_FF(op_2040_0), 0, 8256 }, /* MOVEA.L Dn,An */ +{ CPUFUNC_FF(op_2048_0), 0, 8264 }, /* MOVEA.L An,An */ +{ CPUFUNC_FF(op_2050_0), 0, 8272 }, /* MOVEA.L (An),An */ +{ CPUFUNC_FF(op_2058_0), 0, 8280 }, /* MOVEA.L (An)+,An */ +{ CPUFUNC_FF(op_2060_0), 0, 8288 }, /* MOVEA.L -(An),An */ +{ CPUFUNC_FF(op_2068_0), 0, 8296 }, /* MOVEA.L (d16,An),An */ +{ CPUFUNC_FF(op_2070_3), 0, 8304 }, /* MOVEA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_2078_0), 0, 8312 }, /* MOVEA.L (xxx).W,An */ +{ CPUFUNC_FF(op_2079_0), 0, 8313 }, /* MOVEA.L (xxx).L,An */ +{ CPUFUNC_FF(op_207a_0), 0, 8314 }, /* MOVEA.L (d16,PC),An */ +{ CPUFUNC_FF(op_207b_3), 0, 8315 }, /* MOVEA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_207c_0), 0, 8316 }, /* MOVEA.L #.L,An */ +{ CPUFUNC(op_2080_0), 0, 8320 }, /* MOVE.L Dn,(An) */ +{ CPUFUNC(op_2088_0), 0, 8328 }, /* MOVE.L An,(An) */ +{ CPUFUNC(op_2090_0), 0, 8336 }, /* MOVE.L (An),(An) */ +{ CPUFUNC(op_2098_0), 0, 8344 }, /* MOVE.L (An)+,(An) */ +{ CPUFUNC(op_20a0_0), 0, 8352 }, /* MOVE.L -(An),(An) */ +{ CPUFUNC(op_20a8_0), 0, 8360 }, /* MOVE.L (d16,An),(An) */ +{ CPUFUNC(op_20b0_3), 0, 8368 }, /* MOVE.L (d8,An,Xn),(An) */ +{ CPUFUNC(op_20b8_0), 0, 8376 }, /* MOVE.L (xxx).W,(An) */ +{ CPUFUNC(op_20b9_0), 0, 8377 }, /* MOVE.L (xxx).L,(An) */ +{ CPUFUNC(op_20ba_0), 0, 8378 }, /* MOVE.L (d16,PC),(An) */ +{ CPUFUNC(op_20bb_3), 0, 8379 }, /* MOVE.L (d8,PC,Xn),(An) */ +{ CPUFUNC(op_20bc_0), 0, 8380 }, /* MOVE.L #.L,(An) */ +{ CPUFUNC(op_20c0_0), 0, 8384 }, /* MOVE.L Dn,(An)+ */ +{ CPUFUNC(op_20c8_0), 0, 8392 }, /* MOVE.L An,(An)+ */ +{ CPUFUNC(op_20d0_0), 0, 8400 }, /* MOVE.L (An),(An)+ */ +{ CPUFUNC(op_20d8_0), 0, 8408 }, /* MOVE.L (An)+,(An)+ */ +{ CPUFUNC(op_20e0_0), 0, 8416 }, /* MOVE.L -(An),(An)+ */ +{ CPUFUNC(op_20e8_0), 0, 8424 }, /* MOVE.L (d16,An),(An)+ */ +{ CPUFUNC(op_20f0_3), 0, 8432 }, /* MOVE.L (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_20f8_0), 0, 8440 }, /* MOVE.L (xxx).W,(An)+ */ +{ CPUFUNC(op_20f9_0), 0, 8441 }, /* MOVE.L (xxx).L,(An)+ */ +{ CPUFUNC(op_20fa_0), 0, 8442 }, /* MOVE.L (d16,PC),(An)+ */ +{ CPUFUNC(op_20fb_3), 0, 8443 }, /* MOVE.L (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_20fc_0), 0, 8444 }, /* MOVE.L #.L,(An)+ */ +{ CPUFUNC(op_2100_0), 0, 8448 }, /* MOVE.L Dn,-(An) */ +{ CPUFUNC(op_2108_0), 0, 8456 }, /* MOVE.L An,-(An) */ +{ CPUFUNC(op_2110_0), 0, 8464 }, /* MOVE.L (An),-(An) */ +{ CPUFUNC(op_2118_0), 0, 8472 }, /* MOVE.L (An)+,-(An) */ +{ CPUFUNC(op_2120_0), 0, 8480 }, /* MOVE.L -(An),-(An) */ +{ CPUFUNC(op_2128_0), 0, 8488 }, /* MOVE.L (d16,An),-(An) */ +{ CPUFUNC(op_2130_3), 0, 8496 }, /* MOVE.L (d8,An,Xn),-(An) */ +{ CPUFUNC(op_2138_0), 0, 8504 }, /* MOVE.L (xxx).W,-(An) */ +{ CPUFUNC(op_2139_0), 0, 8505 }, /* MOVE.L (xxx).L,-(An) */ +{ CPUFUNC(op_213a_0), 0, 8506 }, /* MOVE.L (d16,PC),-(An) */ +{ CPUFUNC(op_213b_3), 0, 8507 }, /* MOVE.L (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_213c_0), 0, 8508 }, /* MOVE.L #.L,-(An) */ +{ CPUFUNC(op_2140_0), 0, 8512 }, /* MOVE.L Dn,(d16,An) */ +{ CPUFUNC(op_2148_0), 0, 8520 }, /* MOVE.L An,(d16,An) */ +{ CPUFUNC(op_2150_0), 0, 8528 }, /* MOVE.L (An),(d16,An) */ +{ CPUFUNC(op_2158_0), 0, 8536 }, /* MOVE.L (An)+,(d16,An) */ +{ CPUFUNC(op_2160_0), 0, 8544 }, /* MOVE.L -(An),(d16,An) */ +{ CPUFUNC(op_2168_0), 0, 8552 }, /* MOVE.L (d16,An),(d16,An) */ +{ CPUFUNC(op_2170_3), 0, 8560 }, /* MOVE.L (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_2178_0), 0, 8568 }, /* MOVE.L (xxx).W,(d16,An) */ +{ CPUFUNC(op_2179_0), 0, 8569 }, /* MOVE.L (xxx).L,(d16,An) */ +{ CPUFUNC(op_217a_0), 0, 8570 }, /* MOVE.L (d16,PC),(d16,An) */ +{ CPUFUNC(op_217b_3), 0, 8571 }, /* MOVE.L (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_217c_0), 0, 8572 }, /* MOVE.L #.L,(d16,An) */ +{ CPUFUNC(op_2180_3), 0, 8576 }, /* MOVE.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_2188_3), 0, 8584 }, /* MOVE.L An,(d8,An,Xn) */ +{ CPUFUNC(op_2190_3), 0, 8592 }, /* MOVE.L (An),(d8,An,Xn) */ +{ CPUFUNC(op_2198_3), 0, 8600 }, /* MOVE.L (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_21a0_3), 0, 8608 }, /* MOVE.L -(An),(d8,An,Xn) */ +{ CPUFUNC(op_21a8_3), 0, 8616 }, /* MOVE.L (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_21b0_3), 0, 8624 }, /* MOVE.L (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_21b8_3), 0, 8632 }, /* MOVE.L (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_21b9_3), 0, 8633 }, /* MOVE.L (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_21ba_3), 0, 8634 }, /* MOVE.L (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_21bb_3), 0, 8635 }, /* MOVE.L (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_21bc_3), 0, 8636 }, /* MOVE.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_21c0_0), 0, 8640 }, /* MOVE.L Dn,(xxx).W */ +{ CPUFUNC(op_21c8_0), 0, 8648 }, /* MOVE.L An,(xxx).W */ +{ CPUFUNC(op_21d0_0), 0, 8656 }, /* MOVE.L (An),(xxx).W */ +{ CPUFUNC(op_21d8_0), 0, 8664 }, /* MOVE.L (An)+,(xxx).W */ +{ CPUFUNC(op_21e0_0), 0, 8672 }, /* MOVE.L -(An),(xxx).W */ +{ CPUFUNC(op_21e8_0), 0, 8680 }, /* MOVE.L (d16,An),(xxx).W */ +{ CPUFUNC(op_21f0_3), 0, 8688 }, /* MOVE.L (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_21f8_0), 0, 8696 }, /* MOVE.L (xxx).W,(xxx).W */ +{ CPUFUNC(op_21f9_0), 0, 8697 }, /* MOVE.L (xxx).L,(xxx).W */ +{ CPUFUNC(op_21fa_0), 0, 8698 }, /* MOVE.L (d16,PC),(xxx).W */ +{ CPUFUNC(op_21fb_3), 0, 8699 }, /* MOVE.L (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_21fc_0), 0, 8700 }, /* MOVE.L #.L,(xxx).W */ +{ CPUFUNC(op_23c0_0), 0, 9152 }, /* MOVE.L Dn,(xxx).L */ +{ CPUFUNC(op_23c8_0), 0, 9160 }, /* MOVE.L An,(xxx).L */ +{ CPUFUNC(op_23d0_0), 0, 9168 }, /* MOVE.L (An),(xxx).L */ +{ CPUFUNC(op_23d8_0), 0, 9176 }, /* MOVE.L (An)+,(xxx).L */ +{ CPUFUNC(op_23e0_0), 0, 9184 }, /* MOVE.L -(An),(xxx).L */ +{ CPUFUNC(op_23e8_0), 0, 9192 }, /* MOVE.L (d16,An),(xxx).L */ +{ CPUFUNC(op_23f0_3), 0, 9200 }, /* MOVE.L (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_23f8_0), 0, 9208 }, /* MOVE.L (xxx).W,(xxx).L */ +{ CPUFUNC(op_23f9_0), 0, 9209 }, /* MOVE.L (xxx).L,(xxx).L */ +{ CPUFUNC(op_23fa_0), 0, 9210 }, /* MOVE.L (d16,PC),(xxx).L */ +{ CPUFUNC(op_23fb_3), 0, 9211 }, /* MOVE.L (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_23fc_0), 0, 9212 }, /* MOVE.L #.L,(xxx).L */ +{ CPUFUNC(op_3000_0), 0, 12288 }, /* MOVE.W Dn,Dn */ +{ CPUFUNC(op_3008_0), 0, 12296 }, /* MOVE.W An,Dn */ +{ CPUFUNC(op_3010_0), 0, 12304 }, /* MOVE.W (An),Dn */ +{ CPUFUNC(op_3018_0), 0, 12312 }, /* MOVE.W (An)+,Dn */ +{ CPUFUNC(op_3020_0), 0, 12320 }, /* MOVE.W -(An),Dn */ +{ CPUFUNC(op_3028_0), 0, 12328 }, /* MOVE.W (d16,An),Dn */ +{ CPUFUNC(op_3030_3), 0, 12336 }, /* MOVE.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_3038_0), 0, 12344 }, /* MOVE.W (xxx).W,Dn */ +{ CPUFUNC(op_3039_0), 0, 12345 }, /* MOVE.W (xxx).L,Dn */ +{ CPUFUNC(op_303a_0), 0, 12346 }, /* MOVE.W (d16,PC),Dn */ +{ CPUFUNC(op_303b_3), 0, 12347 }, /* MOVE.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_303c_0), 0, 12348 }, /* MOVE.W #.W,Dn */ +{ CPUFUNC_FF(op_3040_0), 0, 12352 }, /* MOVEA.W Dn,An */ +{ CPUFUNC_FF(op_3048_0), 0, 12360 }, /* MOVEA.W An,An */ +{ CPUFUNC_FF(op_3050_0), 0, 12368 }, /* MOVEA.W (An),An */ +{ CPUFUNC_FF(op_3058_0), 0, 12376 }, /* MOVEA.W (An)+,An */ +{ CPUFUNC_FF(op_3060_0), 0, 12384 }, /* MOVEA.W -(An),An */ +{ CPUFUNC_FF(op_3068_0), 0, 12392 }, /* MOVEA.W (d16,An),An */ +{ CPUFUNC_FF(op_3070_3), 0, 12400 }, /* MOVEA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_3078_0), 0, 12408 }, /* MOVEA.W (xxx).W,An */ +{ CPUFUNC_FF(op_3079_0), 0, 12409 }, /* MOVEA.W (xxx).L,An */ +{ CPUFUNC_FF(op_307a_0), 0, 12410 }, /* MOVEA.W (d16,PC),An */ +{ CPUFUNC_FF(op_307b_3), 0, 12411 }, /* MOVEA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_307c_0), 0, 12412 }, /* MOVEA.W #.W,An */ +{ CPUFUNC(op_3080_0), 0, 12416 }, /* MOVE.W Dn,(An) */ +{ CPUFUNC(op_3088_0), 0, 12424 }, /* MOVE.W An,(An) */ +{ CPUFUNC(op_3090_0), 0, 12432 }, /* MOVE.W (An),(An) */ +{ CPUFUNC(op_3098_0), 0, 12440 }, /* MOVE.W (An)+,(An) */ +{ CPUFUNC(op_30a0_0), 0, 12448 }, /* MOVE.W -(An),(An) */ +{ CPUFUNC(op_30a8_0), 0, 12456 }, /* MOVE.W (d16,An),(An) */ +{ CPUFUNC(op_30b0_3), 0, 12464 }, /* MOVE.W (d8,An,Xn),(An) */ +{ CPUFUNC(op_30b8_0), 0, 12472 }, /* MOVE.W (xxx).W,(An) */ +{ CPUFUNC(op_30b9_0), 0, 12473 }, /* MOVE.W (xxx).L,(An) */ +{ CPUFUNC(op_30ba_0), 0, 12474 }, /* MOVE.W (d16,PC),(An) */ +{ CPUFUNC(op_30bb_3), 0, 12475 }, /* MOVE.W (d8,PC,Xn),(An) */ +{ CPUFUNC(op_30bc_0), 0, 12476 }, /* MOVE.W #.W,(An) */ +{ CPUFUNC(op_30c0_0), 0, 12480 }, /* MOVE.W Dn,(An)+ */ +{ CPUFUNC(op_30c8_0), 0, 12488 }, /* MOVE.W An,(An)+ */ +{ CPUFUNC(op_30d0_0), 0, 12496 }, /* MOVE.W (An),(An)+ */ +{ CPUFUNC(op_30d8_0), 0, 12504 }, /* MOVE.W (An)+,(An)+ */ +{ CPUFUNC(op_30e0_0), 0, 12512 }, /* MOVE.W -(An),(An)+ */ +{ CPUFUNC(op_30e8_0), 0, 12520 }, /* MOVE.W (d16,An),(An)+ */ +{ CPUFUNC(op_30f0_3), 0, 12528 }, /* MOVE.W (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_30f8_0), 0, 12536 }, /* MOVE.W (xxx).W,(An)+ */ +{ CPUFUNC(op_30f9_0), 0, 12537 }, /* MOVE.W (xxx).L,(An)+ */ +{ CPUFUNC(op_30fa_0), 0, 12538 }, /* MOVE.W (d16,PC),(An)+ */ +{ CPUFUNC(op_30fb_3), 0, 12539 }, /* MOVE.W (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_30fc_0), 0, 12540 }, /* MOVE.W #.W,(An)+ */ +{ CPUFUNC(op_3100_0), 0, 12544 }, /* MOVE.W Dn,-(An) */ +{ CPUFUNC(op_3108_0), 0, 12552 }, /* MOVE.W An,-(An) */ +{ CPUFUNC(op_3110_0), 0, 12560 }, /* MOVE.W (An),-(An) */ +{ CPUFUNC(op_3118_0), 0, 12568 }, /* MOVE.W (An)+,-(An) */ +{ CPUFUNC(op_3120_0), 0, 12576 }, /* MOVE.W -(An),-(An) */ +{ CPUFUNC(op_3128_0), 0, 12584 }, /* MOVE.W (d16,An),-(An) */ +{ CPUFUNC(op_3130_3), 0, 12592 }, /* MOVE.W (d8,An,Xn),-(An) */ +{ CPUFUNC(op_3138_0), 0, 12600 }, /* MOVE.W (xxx).W,-(An) */ +{ CPUFUNC(op_3139_0), 0, 12601 }, /* MOVE.W (xxx).L,-(An) */ +{ CPUFUNC(op_313a_0), 0, 12602 }, /* MOVE.W (d16,PC),-(An) */ +{ CPUFUNC(op_313b_3), 0, 12603 }, /* MOVE.W (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_313c_0), 0, 12604 }, /* MOVE.W #.W,-(An) */ +{ CPUFUNC(op_3140_0), 0, 12608 }, /* MOVE.W Dn,(d16,An) */ +{ CPUFUNC(op_3148_0), 0, 12616 }, /* MOVE.W An,(d16,An) */ +{ CPUFUNC(op_3150_0), 0, 12624 }, /* MOVE.W (An),(d16,An) */ +{ CPUFUNC(op_3158_0), 0, 12632 }, /* MOVE.W (An)+,(d16,An) */ +{ CPUFUNC(op_3160_0), 0, 12640 }, /* MOVE.W -(An),(d16,An) */ +{ CPUFUNC(op_3168_0), 0, 12648 }, /* MOVE.W (d16,An),(d16,An) */ +{ CPUFUNC(op_3170_3), 0, 12656 }, /* MOVE.W (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_3178_0), 0, 12664 }, /* MOVE.W (xxx).W,(d16,An) */ +{ CPUFUNC(op_3179_0), 0, 12665 }, /* MOVE.W (xxx).L,(d16,An) */ +{ CPUFUNC(op_317a_0), 0, 12666 }, /* MOVE.W (d16,PC),(d16,An) */ +{ CPUFUNC(op_317b_3), 0, 12667 }, /* MOVE.W (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_317c_0), 0, 12668 }, /* MOVE.W #.W,(d16,An) */ +{ CPUFUNC(op_3180_3), 0, 12672 }, /* MOVE.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_3188_3), 0, 12680 }, /* MOVE.W An,(d8,An,Xn) */ +{ CPUFUNC(op_3190_3), 0, 12688 }, /* MOVE.W (An),(d8,An,Xn) */ +{ CPUFUNC(op_3198_3), 0, 12696 }, /* MOVE.W (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_31a0_3), 0, 12704 }, /* MOVE.W -(An),(d8,An,Xn) */ +{ CPUFUNC(op_31a8_3), 0, 12712 }, /* MOVE.W (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_31b0_3), 0, 12720 }, /* MOVE.W (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_31b8_3), 0, 12728 }, /* MOVE.W (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_31b9_3), 0, 12729 }, /* MOVE.W (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_31ba_3), 0, 12730 }, /* MOVE.W (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_31bb_3), 0, 12731 }, /* MOVE.W (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_31bc_3), 0, 12732 }, /* MOVE.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_31c0_0), 0, 12736 }, /* MOVE.W Dn,(xxx).W */ +{ CPUFUNC(op_31c8_0), 0, 12744 }, /* MOVE.W An,(xxx).W */ +{ CPUFUNC(op_31d0_0), 0, 12752 }, /* MOVE.W (An),(xxx).W */ +{ CPUFUNC(op_31d8_0), 0, 12760 }, /* MOVE.W (An)+,(xxx).W */ +{ CPUFUNC(op_31e0_0), 0, 12768 }, /* MOVE.W -(An),(xxx).W */ +{ CPUFUNC(op_31e8_0), 0, 12776 }, /* MOVE.W (d16,An),(xxx).W */ +{ CPUFUNC(op_31f0_3), 0, 12784 }, /* MOVE.W (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_31f8_0), 0, 12792 }, /* MOVE.W (xxx).W,(xxx).W */ +{ CPUFUNC(op_31f9_0), 0, 12793 }, /* MOVE.W (xxx).L,(xxx).W */ +{ CPUFUNC(op_31fa_0), 0, 12794 }, /* MOVE.W (d16,PC),(xxx).W */ +{ CPUFUNC(op_31fb_3), 0, 12795 }, /* MOVE.W (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_31fc_0), 0, 12796 }, /* MOVE.W #.W,(xxx).W */ +{ CPUFUNC(op_33c0_0), 0, 13248 }, /* MOVE.W Dn,(xxx).L */ +{ CPUFUNC(op_33c8_0), 0, 13256 }, /* MOVE.W An,(xxx).L */ +{ CPUFUNC(op_33d0_0), 0, 13264 }, /* MOVE.W (An),(xxx).L */ +{ CPUFUNC(op_33d8_0), 0, 13272 }, /* MOVE.W (An)+,(xxx).L */ +{ CPUFUNC(op_33e0_0), 0, 13280 }, /* MOVE.W -(An),(xxx).L */ +{ CPUFUNC(op_33e8_0), 0, 13288 }, /* MOVE.W (d16,An),(xxx).L */ +{ CPUFUNC(op_33f0_3), 0, 13296 }, /* MOVE.W (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_33f8_0), 0, 13304 }, /* MOVE.W (xxx).W,(xxx).L */ +{ CPUFUNC(op_33f9_0), 0, 13305 }, /* MOVE.W (xxx).L,(xxx).L */ +{ CPUFUNC(op_33fa_0), 0, 13306 }, /* MOVE.W (d16,PC),(xxx).L */ +{ CPUFUNC(op_33fb_3), 0, 13307 }, /* MOVE.W (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_33fc_0), 0, 13308 }, /* MOVE.W #.W,(xxx).L */ +{ CPUFUNC(op_4000_0), 0, 16384 }, /* NEGX.B Dn */ +{ CPUFUNC(op_4010_0), 0, 16400 }, /* NEGX.B (An) */ +{ CPUFUNC(op_4018_0), 0, 16408 }, /* NEGX.B (An)+ */ +{ CPUFUNC(op_4020_0), 0, 16416 }, /* NEGX.B -(An) */ +{ CPUFUNC(op_4028_0), 0, 16424 }, /* NEGX.B (d16,An) */ +{ CPUFUNC(op_4030_3), 0, 16432 }, /* NEGX.B (d8,An,Xn) */ +{ CPUFUNC(op_4038_0), 0, 16440 }, /* NEGX.B (xxx).W */ +{ CPUFUNC(op_4039_0), 0, 16441 }, /* NEGX.B (xxx).L */ +{ CPUFUNC(op_4040_0), 0, 16448 }, /* NEGX.W Dn */ +{ CPUFUNC(op_4050_0), 0, 16464 }, /* NEGX.W (An) */ +{ CPUFUNC(op_4058_0), 0, 16472 }, /* NEGX.W (An)+ */ +{ CPUFUNC(op_4060_0), 0, 16480 }, /* NEGX.W -(An) */ +{ CPUFUNC(op_4068_0), 0, 16488 }, /* NEGX.W (d16,An) */ +{ CPUFUNC(op_4070_3), 0, 16496 }, /* NEGX.W (d8,An,Xn) */ +{ CPUFUNC(op_4078_0), 0, 16504 }, /* NEGX.W (xxx).W */ +{ CPUFUNC(op_4079_0), 0, 16505 }, /* NEGX.W (xxx).L */ +{ CPUFUNC(op_4080_0), 0, 16512 }, /* NEGX.L Dn */ +{ CPUFUNC(op_4090_0), 0, 16528 }, /* NEGX.L (An) */ +{ CPUFUNC(op_4098_0), 0, 16536 }, /* NEGX.L (An)+ */ +{ CPUFUNC(op_40a0_0), 0, 16544 }, /* NEGX.L -(An) */ +{ CPUFUNC(op_40a8_0), 0, 16552 }, /* NEGX.L (d16,An) */ +{ CPUFUNC(op_40b0_3), 0, 16560 }, /* NEGX.L (d8,An,Xn) */ +{ CPUFUNC(op_40b8_0), 0, 16568 }, /* NEGX.L (xxx).W */ +{ CPUFUNC(op_40b9_0), 0, 16569 }, /* NEGX.L (xxx).L */ +{ CPUFUNC_FF(op_40c0_0), 0, 16576 }, /* MVSR2.W Dn */ +{ CPUFUNC_FF(op_40d0_0), 0, 16592 }, /* MVSR2.W (An) */ +{ CPUFUNC_FF(op_40d8_0), 0, 16600 }, /* MVSR2.W (An)+ */ +{ CPUFUNC_FF(op_40e0_0), 0, 16608 }, /* MVSR2.W -(An) */ +{ CPUFUNC_FF(op_40e8_0), 0, 16616 }, /* MVSR2.W (d16,An) */ +{ CPUFUNC_FF(op_40f0_3), 0, 16624 }, /* MVSR2.W (d8,An,Xn) */ +{ CPUFUNC_FF(op_40f8_0), 0, 16632 }, /* MVSR2.W (xxx).W */ +{ CPUFUNC_FF(op_40f9_0), 0, 16633 }, /* MVSR2.W (xxx).L */ +{ CPUFUNC(op_4100_0), 0, 16640 }, /* CHK.L Dn,Dn */ +{ CPUFUNC(op_4110_0), 0, 16656 }, /* CHK.L (An),Dn */ +{ CPUFUNC(op_4118_0), 0, 16664 }, /* CHK.L (An)+,Dn */ +{ CPUFUNC(op_4120_0), 0, 16672 }, /* CHK.L -(An),Dn */ +{ CPUFUNC(op_4128_0), 0, 16680 }, /* CHK.L (d16,An),Dn */ +{ CPUFUNC(op_4130_3), 0, 16688 }, /* CHK.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_4138_0), 0, 16696 }, /* CHK.L (xxx).W,Dn */ +{ CPUFUNC(op_4139_0), 0, 16697 }, /* CHK.L (xxx).L,Dn */ +{ CPUFUNC(op_413a_0), 0, 16698 }, /* CHK.L (d16,PC),Dn */ +{ CPUFUNC(op_413b_3), 0, 16699 }, /* CHK.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_413c_0), 0, 16700 }, /* CHK.L #.L,Dn */ +{ CPUFUNC(op_4180_0), 0, 16768 }, /* CHK.W Dn,Dn */ +{ CPUFUNC(op_4190_0), 0, 16784 }, /* CHK.W (An),Dn */ +{ CPUFUNC(op_4198_0), 0, 16792 }, /* CHK.W (An)+,Dn */ +{ CPUFUNC(op_41a0_0), 0, 16800 }, /* CHK.W -(An),Dn */ +{ CPUFUNC(op_41a8_0), 0, 16808 }, /* CHK.W (d16,An),Dn */ +{ CPUFUNC(op_41b0_3), 0, 16816 }, /* CHK.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_41b8_0), 0, 16824 }, /* CHK.W (xxx).W,Dn */ +{ CPUFUNC(op_41b9_0), 0, 16825 }, /* CHK.W (xxx).L,Dn */ +{ CPUFUNC(op_41ba_0), 0, 16826 }, /* CHK.W (d16,PC),Dn */ +{ CPUFUNC(op_41bb_3), 0, 16827 }, /* CHK.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_41bc_0), 0, 16828 }, /* CHK.W #.W,Dn */ +{ CPUFUNC_FF(op_41d0_0), 0, 16848 }, /* LEA.L (An),An */ +{ CPUFUNC_FF(op_41e8_0), 0, 16872 }, /* LEA.L (d16,An),An */ +{ CPUFUNC_FF(op_41f0_3), 0, 16880 }, /* LEA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_41f8_0), 0, 16888 }, /* LEA.L (xxx).W,An */ +{ CPUFUNC_FF(op_41f9_0), 0, 16889 }, /* LEA.L (xxx).L,An */ +{ CPUFUNC_FF(op_41fa_0), 0, 16890 }, /* LEA.L (d16,PC),An */ +{ CPUFUNC_FF(op_41fb_3), 0, 16891 }, /* LEA.L (d8,PC,Xn),An */ +{ CPUFUNC(op_4200_0), 0, 16896 }, /* CLR.B Dn */ +{ CPUFUNC(op_4210_0), 0, 16912 }, /* CLR.B (An) */ +{ CPUFUNC(op_4218_0), 0, 16920 }, /* CLR.B (An)+ */ +{ CPUFUNC(op_4220_0), 0, 16928 }, /* CLR.B -(An) */ +{ CPUFUNC(op_4228_0), 0, 16936 }, /* CLR.B (d16,An) */ +{ CPUFUNC(op_4230_3), 0, 16944 }, /* CLR.B (d8,An,Xn) */ +{ CPUFUNC(op_4238_0), 0, 16952 }, /* CLR.B (xxx).W */ +{ CPUFUNC(op_4239_0), 0, 16953 }, /* CLR.B (xxx).L */ +{ CPUFUNC(op_4240_0), 0, 16960 }, /* CLR.W Dn */ +{ CPUFUNC(op_4250_0), 0, 16976 }, /* CLR.W (An) */ +{ CPUFUNC(op_4258_0), 0, 16984 }, /* CLR.W (An)+ */ +{ CPUFUNC(op_4260_0), 0, 16992 }, /* CLR.W -(An) */ +{ CPUFUNC(op_4268_0), 0, 17000 }, /* CLR.W (d16,An) */ +{ CPUFUNC(op_4270_3), 0, 17008 }, /* CLR.W (d8,An,Xn) */ +{ CPUFUNC(op_4278_0), 0, 17016 }, /* CLR.W (xxx).W */ +{ CPUFUNC(op_4279_0), 0, 17017 }, /* CLR.W (xxx).L */ +{ CPUFUNC(op_4280_0), 0, 17024 }, /* CLR.L Dn */ +{ CPUFUNC(op_4290_0), 0, 17040 }, /* CLR.L (An) */ +{ CPUFUNC(op_4298_0), 0, 17048 }, /* CLR.L (An)+ */ +{ CPUFUNC(op_42a0_0), 0, 17056 }, /* CLR.L -(An) */ +{ CPUFUNC(op_42a8_0), 0, 17064 }, /* CLR.L (d16,An) */ +{ CPUFUNC(op_42b0_3), 0, 17072 }, /* CLR.L (d8,An,Xn) */ +{ CPUFUNC(op_42b8_0), 0, 17080 }, /* CLR.L (xxx).W */ +{ CPUFUNC(op_42b9_0), 0, 17081 }, /* CLR.L (xxx).L */ +{ CPUFUNC_FF(op_42c0_0), 0, 17088 }, /* MVSR2.B Dn */ +{ CPUFUNC_FF(op_42d0_0), 0, 17104 }, /* MVSR2.B (An) */ +{ CPUFUNC_FF(op_42d8_0), 0, 17112 }, /* MVSR2.B (An)+ */ +{ CPUFUNC_FF(op_42e0_0), 0, 17120 }, /* MVSR2.B -(An) */ +{ CPUFUNC_FF(op_42e8_0), 0, 17128 }, /* MVSR2.B (d16,An) */ +{ CPUFUNC_FF(op_42f0_3), 0, 17136 }, /* MVSR2.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_42f8_0), 0, 17144 }, /* MVSR2.B (xxx).W */ +{ CPUFUNC_FF(op_42f9_0), 0, 17145 }, /* MVSR2.B (xxx).L */ +{ CPUFUNC(op_4400_0), 0, 17408 }, /* NEG.B Dn */ +{ CPUFUNC(op_4410_0), 0, 17424 }, /* NEG.B (An) */ +{ CPUFUNC(op_4418_0), 0, 17432 }, /* NEG.B (An)+ */ +{ CPUFUNC(op_4420_0), 0, 17440 }, /* NEG.B -(An) */ +{ CPUFUNC(op_4428_0), 0, 17448 }, /* NEG.B (d16,An) */ +{ CPUFUNC(op_4430_3), 0, 17456 }, /* NEG.B (d8,An,Xn) */ +{ CPUFUNC(op_4438_0), 0, 17464 }, /* NEG.B (xxx).W */ +{ CPUFUNC(op_4439_0), 0, 17465 }, /* NEG.B (xxx).L */ +{ CPUFUNC(op_4440_0), 0, 17472 }, /* NEG.W Dn */ +{ CPUFUNC(op_4450_0), 0, 17488 }, /* NEG.W (An) */ +{ CPUFUNC(op_4458_0), 0, 17496 }, /* NEG.W (An)+ */ +{ CPUFUNC(op_4460_0), 0, 17504 }, /* NEG.W -(An) */ +{ CPUFUNC(op_4468_0), 0, 17512 }, /* NEG.W (d16,An) */ +{ CPUFUNC(op_4470_3), 0, 17520 }, /* NEG.W (d8,An,Xn) */ +{ CPUFUNC(op_4478_0), 0, 17528 }, /* NEG.W (xxx).W */ +{ CPUFUNC(op_4479_0), 0, 17529 }, /* NEG.W (xxx).L */ +{ CPUFUNC(op_4480_0), 0, 17536 }, /* NEG.L Dn */ +{ CPUFUNC(op_4490_0), 0, 17552 }, /* NEG.L (An) */ +{ CPUFUNC(op_4498_0), 0, 17560 }, /* NEG.L (An)+ */ +{ CPUFUNC(op_44a0_0), 0, 17568 }, /* NEG.L -(An) */ +{ CPUFUNC(op_44a8_0), 0, 17576 }, /* NEG.L (d16,An) */ +{ CPUFUNC(op_44b0_3), 0, 17584 }, /* NEG.L (d8,An,Xn) */ +{ CPUFUNC(op_44b8_0), 0, 17592 }, /* NEG.L (xxx).W */ +{ CPUFUNC(op_44b9_0), 0, 17593 }, /* NEG.L (xxx).L */ +{ CPUFUNC(op_44c0_0), 0, 17600 }, /* MV2SR.B Dn */ +{ CPUFUNC(op_44d0_0), 0, 17616 }, /* MV2SR.B (An) */ +{ CPUFUNC(op_44d8_0), 0, 17624 }, /* MV2SR.B (An)+ */ +{ CPUFUNC(op_44e0_0), 0, 17632 }, /* MV2SR.B -(An) */ +{ CPUFUNC(op_44e8_0), 0, 17640 }, /* MV2SR.B (d16,An) */ +{ CPUFUNC(op_44f0_3), 0, 17648 }, /* MV2SR.B (d8,An,Xn) */ +{ CPUFUNC(op_44f8_0), 0, 17656 }, /* MV2SR.B (xxx).W */ +{ CPUFUNC(op_44f9_0), 0, 17657 }, /* MV2SR.B (xxx).L */ +{ CPUFUNC(op_44fa_0), 0, 17658 }, /* MV2SR.B (d16,PC) */ +{ CPUFUNC(op_44fb_3), 0, 17659 }, /* MV2SR.B (d8,PC,Xn) */ +{ CPUFUNC(op_44fc_0), 0, 17660 }, /* MV2SR.B #.B */ +{ CPUFUNC(op_4600_0), 0, 17920 }, /* NOT.B Dn */ +{ CPUFUNC(op_4610_0), 0, 17936 }, /* NOT.B (An) */ +{ CPUFUNC(op_4618_0), 0, 17944 }, /* NOT.B (An)+ */ +{ CPUFUNC(op_4620_0), 0, 17952 }, /* NOT.B -(An) */ +{ CPUFUNC(op_4628_0), 0, 17960 }, /* NOT.B (d16,An) */ +{ CPUFUNC(op_4630_3), 0, 17968 }, /* NOT.B (d8,An,Xn) */ +{ CPUFUNC(op_4638_0), 0, 17976 }, /* NOT.B (xxx).W */ +{ CPUFUNC(op_4639_0), 0, 17977 }, /* NOT.B (xxx).L */ +{ CPUFUNC(op_4640_0), 0, 17984 }, /* NOT.W Dn */ +{ CPUFUNC(op_4650_0), 0, 18000 }, /* NOT.W (An) */ +{ CPUFUNC(op_4658_0), 0, 18008 }, /* NOT.W (An)+ */ +{ CPUFUNC(op_4660_0), 0, 18016 }, /* NOT.W -(An) */ +{ CPUFUNC(op_4668_0), 0, 18024 }, /* NOT.W (d16,An) */ +{ CPUFUNC(op_4670_3), 0, 18032 }, /* NOT.W (d8,An,Xn) */ +{ CPUFUNC(op_4678_0), 0, 18040 }, /* NOT.W (xxx).W */ +{ CPUFUNC(op_4679_0), 0, 18041 }, /* NOT.W (xxx).L */ +{ CPUFUNC(op_4680_0), 0, 18048 }, /* NOT.L Dn */ +{ CPUFUNC(op_4690_0), 0, 18064 }, /* NOT.L (An) */ +{ CPUFUNC(op_4698_0), 0, 18072 }, /* NOT.L (An)+ */ +{ CPUFUNC(op_46a0_0), 0, 18080 }, /* NOT.L -(An) */ +{ CPUFUNC(op_46a8_0), 0, 18088 }, /* NOT.L (d16,An) */ +{ CPUFUNC(op_46b0_3), 0, 18096 }, /* NOT.L (d8,An,Xn) */ +{ CPUFUNC(op_46b8_0), 0, 18104 }, /* NOT.L (xxx).W */ +{ CPUFUNC(op_46b9_0), 0, 18105 }, /* NOT.L (xxx).L */ +{ CPUFUNC(op_46c0_0), 0, 18112 }, /* MV2SR.W Dn */ +{ CPUFUNC(op_46d0_0), 0, 18128 }, /* MV2SR.W (An) */ +{ CPUFUNC(op_46d8_0), 0, 18136 }, /* MV2SR.W (An)+ */ +{ CPUFUNC(op_46e0_0), 0, 18144 }, /* MV2SR.W -(An) */ +{ CPUFUNC(op_46e8_0), 0, 18152 }, /* MV2SR.W (d16,An) */ +{ CPUFUNC(op_46f0_3), 0, 18160 }, /* MV2SR.W (d8,An,Xn) */ +{ CPUFUNC(op_46f8_0), 0, 18168 }, /* MV2SR.W (xxx).W */ +{ CPUFUNC(op_46f9_0), 0, 18169 }, /* MV2SR.W (xxx).L */ +{ CPUFUNC(op_46fa_0), 0, 18170 }, /* MV2SR.W (d16,PC) */ +{ CPUFUNC(op_46fb_3), 0, 18171 }, /* MV2SR.W (d8,PC,Xn) */ +{ CPUFUNC(op_46fc_0), 0, 18172 }, /* MV2SR.W #.W */ +{ CPUFUNC(op_4800_1), 0, 18432 }, /* NBCD.B Dn */ +{ CPUFUNC(op_4810_1), 0, 18448 }, /* NBCD.B (An) */ +{ CPUFUNC(op_4818_1), 0, 18456 }, /* NBCD.B (An)+ */ +{ CPUFUNC(op_4820_1), 0, 18464 }, /* NBCD.B -(An) */ +{ CPUFUNC(op_4828_1), 0, 18472 }, /* NBCD.B (d16,An) */ +{ CPUFUNC(op_4830_3), 0, 18480 }, /* NBCD.B (d8,An,Xn) */ +{ CPUFUNC(op_4838_1), 0, 18488 }, /* NBCD.B (xxx).W */ +{ CPUFUNC(op_4839_1), 0, 18489 }, /* NBCD.B (xxx).L */ +{ CPUFUNC(op_4840_0), 0, 18496 }, /* SWAP.W Dn */ +{ CPUFUNC_FF(op_4850_0), 0, 18512 }, /* PEA.L (An) */ +{ CPUFUNC_FF(op_4868_0), 0, 18536 }, /* PEA.L (d16,An) */ +{ CPUFUNC_FF(op_4870_3), 0, 18544 }, /* PEA.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4878_0), 0, 18552 }, /* PEA.L (xxx).W */ +{ CPUFUNC_FF(op_4879_0), 0, 18553 }, /* PEA.L (xxx).L */ +{ CPUFUNC_FF(op_487a_0), 0, 18554 }, /* PEA.L (d16,PC) */ +{ CPUFUNC_FF(op_487b_3), 0, 18555 }, /* PEA.L (d8,PC,Xn) */ +{ CPUFUNC(op_4880_0), 0, 18560 }, /* EXT.W Dn */ +{ CPUFUNC_FF(op_4890_0), 0, 18576 }, /* MVMLE.W #.W,(An) */ +{ CPUFUNC_FF(op_48a0_0), 0, 18592 }, /* MVMLE.W #.W,-(An) */ +{ CPUFUNC_FF(op_48a8_0), 0, 18600 }, /* MVMLE.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_48b0_3), 0, 18608 }, /* MVMLE.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_48b8_0), 0, 18616 }, /* MVMLE.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_48b9_0), 0, 18617 }, /* MVMLE.W #.W,(xxx).L */ +{ CPUFUNC(op_48c0_0), 0, 18624 }, /* EXT.L Dn */ +{ CPUFUNC_FF(op_48d0_0), 0, 18640 }, /* MVMLE.L #.W,(An) */ +{ CPUFUNC_FF(op_48e0_0), 0, 18656 }, /* MVMLE.L #.W,-(An) */ +{ CPUFUNC_FF(op_48e8_0), 0, 18664 }, /* MVMLE.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_48f0_3), 0, 18672 }, /* MVMLE.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_48f8_0), 0, 18680 }, /* MVMLE.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_48f9_0), 0, 18681 }, /* MVMLE.L #.W,(xxx).L */ +{ CPUFUNC(op_49c0_0), 0, 18880 }, /* EXT.B Dn */ +{ CPUFUNC(op_4a00_0), 0, 18944 }, /* TST.B Dn */ +{ CPUFUNC(op_4a10_0), 0, 18960 }, /* TST.B (An) */ +{ CPUFUNC(op_4a18_0), 0, 18968 }, /* TST.B (An)+ */ +{ CPUFUNC(op_4a20_0), 0, 18976 }, /* TST.B -(An) */ +{ CPUFUNC(op_4a28_0), 0, 18984 }, /* TST.B (d16,An) */ +{ CPUFUNC(op_4a30_3), 0, 18992 }, /* TST.B (d8,An,Xn) */ +{ CPUFUNC(op_4a38_0), 0, 19000 }, /* TST.B (xxx).W */ +{ CPUFUNC(op_4a39_0), 0, 19001 }, /* TST.B (xxx).L */ +{ CPUFUNC(op_4a3a_0), 0, 19002 }, /* TST.B (d16,PC) */ +{ CPUFUNC(op_4a3b_3), 0, 19003 }, /* TST.B (d8,PC,Xn) */ +{ CPUFUNC(op_4a3c_0), 0, 19004 }, /* TST.B #.B */ +{ CPUFUNC(op_4a40_0), 0, 19008 }, /* TST.W Dn */ +{ CPUFUNC(op_4a48_0), 0, 19016 }, /* TST.W An */ +{ CPUFUNC(op_4a50_0), 0, 19024 }, /* TST.W (An) */ +{ CPUFUNC(op_4a58_0), 0, 19032 }, /* TST.W (An)+ */ +{ CPUFUNC(op_4a60_0), 0, 19040 }, /* TST.W -(An) */ +{ CPUFUNC(op_4a68_0), 0, 19048 }, /* TST.W (d16,An) */ +{ CPUFUNC(op_4a70_3), 0, 19056 }, /* TST.W (d8,An,Xn) */ +{ CPUFUNC(op_4a78_0), 0, 19064 }, /* TST.W (xxx).W */ +{ CPUFUNC(op_4a79_0), 0, 19065 }, /* TST.W (xxx).L */ +{ CPUFUNC(op_4a7a_0), 0, 19066 }, /* TST.W (d16,PC) */ +{ CPUFUNC(op_4a7b_3), 0, 19067 }, /* TST.W (d8,PC,Xn) */ +{ CPUFUNC(op_4a7c_0), 0, 19068 }, /* TST.W #.W */ +{ CPUFUNC(op_4a80_0), 0, 19072 }, /* TST.L Dn */ +{ CPUFUNC(op_4a88_0), 0, 19080 }, /* TST.L An */ +{ CPUFUNC(op_4a90_0), 0, 19088 }, /* TST.L (An) */ +{ CPUFUNC(op_4a98_0), 0, 19096 }, /* TST.L (An)+ */ +{ CPUFUNC(op_4aa0_0), 0, 19104 }, /* TST.L -(An) */ +{ CPUFUNC(op_4aa8_0), 0, 19112 }, /* TST.L (d16,An) */ +{ CPUFUNC(op_4ab0_3), 0, 19120 }, /* TST.L (d8,An,Xn) */ +{ CPUFUNC(op_4ab8_0), 0, 19128 }, /* TST.L (xxx).W */ +{ CPUFUNC(op_4ab9_0), 0, 19129 }, /* TST.L (xxx).L */ +{ CPUFUNC(op_4aba_0), 0, 19130 }, /* TST.L (d16,PC) */ +{ CPUFUNC(op_4abb_3), 0, 19131 }, /* TST.L (d8,PC,Xn) */ +{ CPUFUNC(op_4abc_0), 0, 19132 }, /* TST.L #.L */ +{ CPUFUNC(op_4ac0_0), 0, 19136 }, /* TAS.B Dn */ +{ CPUFUNC(op_4ad0_0), 0, 19152 }, /* TAS.B (An) */ +{ CPUFUNC(op_4ad8_0), 0, 19160 }, /* TAS.B (An)+ */ +{ CPUFUNC(op_4ae0_0), 0, 19168 }, /* TAS.B -(An) */ +{ CPUFUNC(op_4ae8_0), 0, 19176 }, /* TAS.B (d16,An) */ +{ CPUFUNC(op_4af0_3), 0, 19184 }, /* TAS.B (d8,An,Xn) */ +{ CPUFUNC(op_4af8_0), 0, 19192 }, /* TAS.B (xxx).W */ +{ CPUFUNC(op_4af9_0), 0, 19193 }, /* TAS.B (xxx).L */ +{ CPUFUNC_FF(op_4c90_0), 0, 19600 }, /* MVMEL.W #.W,(An) */ +{ CPUFUNC_FF(op_4c98_0), 0, 19608 }, /* MVMEL.W #.W,(An)+ */ +{ CPUFUNC_FF(op_4ca8_0), 0, 19624 }, /* MVMEL.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_4cb0_3), 0, 19632 }, /* MVMEL.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_4cb8_0), 0, 19640 }, /* MVMEL.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_4cb9_0), 0, 19641 }, /* MVMEL.W #.W,(xxx).L */ +{ CPUFUNC_FF(op_4cba_0), 0, 19642 }, /* MVMEL.W #.W,(d16,PC) */ +{ CPUFUNC_FF(op_4cbb_3), 0, 19643 }, /* MVMEL.W #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_4cd0_0), 0, 19664 }, /* MVMEL.L #.W,(An) */ +{ CPUFUNC_FF(op_4cd8_0), 0, 19672 }, /* MVMEL.L #.W,(An)+ */ +{ CPUFUNC_FF(op_4ce8_0), 0, 19688 }, /* MVMEL.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_4cf0_3), 0, 19696 }, /* MVMEL.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_4cf8_0), 0, 19704 }, /* MVMEL.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_4cf9_0), 0, 19705 }, /* MVMEL.L #.W,(xxx).L */ +{ CPUFUNC_FF(op_4cfa_0), 0, 19706 }, /* MVMEL.L #.W,(d16,PC) */ +{ CPUFUNC_FF(op_4cfb_3), 0, 19707 }, /* MVMEL.L #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_4e40_0), 0, 20032 }, /* TRAP.L # */ +{ CPUFUNC_FF(op_4e50_0), 0, 20048 }, /* LINK.W An,#.W */ +{ CPUFUNC_FF(op_4e58_0), 0, 20056 }, /* UNLK.L An */ +{ CPUFUNC_FF(op_4e60_0), 0, 20064 }, /* MVR2USP.L An */ +{ CPUFUNC_FF(op_4e68_0), 0, 20072 }, /* MVUSP2R.L An */ +{ CPUFUNC_FF(op_4e70_0), 0, 20080 }, /* RESET.L */ +{ CPUFUNC_FF(op_4e71_0), 0, 20081 }, /* NOP.L */ +{ CPUFUNC(op_4e72_0), 0, 20082 }, /* STOP.L #.W */ +{ CPUFUNC(op_4e73_0), 0, 20083 }, /* RTE.L */ +{ CPUFUNC_FF(op_4e74_0), 0, 20084 }, /* RTD.L #.W */ +{ CPUFUNC_FF(op_4e75_0), 0, 20085 }, /* RTS.L */ +{ CPUFUNC_FF(op_4e76_0), 0, 20086 }, /* TRAPV.L */ +{ CPUFUNC(op_4e77_0), 0, 20087 }, /* RTR.L */ +{ CPUFUNC_FF(op_4e7a_0), 0, 20090 }, /* MOVEC2.L #.W */ +{ CPUFUNC_FF(op_4e7b_0), 0, 20091 }, /* MOVE2C.L #.W */ +{ CPUFUNC_FF(op_4e90_0), 0, 20112 }, /* JSR.L (An) */ +{ CPUFUNC_FF(op_4ea8_0), 0, 20136 }, /* JSR.L (d16,An) */ +{ CPUFUNC_FF(op_4eb0_3), 0, 20144 }, /* JSR.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4eb8_0), 0, 20152 }, /* JSR.L (xxx).W */ +{ CPUFUNC_FF(op_4eb9_0), 0, 20153 }, /* JSR.L (xxx).L */ +{ CPUFUNC_FF(op_4eba_0), 0, 20154 }, /* JSR.L (d16,PC) */ +{ CPUFUNC_FF(op_4ebb_3), 0, 20155 }, /* JSR.L (d8,PC,Xn) */ +{ CPUFUNC_FF(op_4ed0_0), 0, 20176 }, /* JMP.L (An) */ +{ CPUFUNC_FF(op_4ee8_0), 0, 20200 }, /* JMP.L (d16,An) */ +{ CPUFUNC_FF(op_4ef0_3), 0, 20208 }, /* JMP.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4ef8_0), 0, 20216 }, /* JMP.L (xxx).W */ +{ CPUFUNC_FF(op_4ef9_0), 0, 20217 }, /* JMP.L (xxx).L */ +{ CPUFUNC_FF(op_4efa_0), 0, 20218 }, /* JMP.L (d16,PC) */ +{ CPUFUNC_FF(op_4efb_3), 0, 20219 }, /* JMP.L (d8,PC,Xn) */ +{ CPUFUNC(op_5000_0), 0, 20480 }, /* ADD.B #,Dn */ +{ CPUFUNC(op_5010_0), 0, 20496 }, /* ADD.B #,(An) */ +{ CPUFUNC(op_5018_0), 0, 20504 }, /* ADD.B #,(An)+ */ +{ CPUFUNC(op_5020_0), 0, 20512 }, /* ADD.B #,-(An) */ +{ CPUFUNC(op_5028_0), 0, 20520 }, /* ADD.B #,(d16,An) */ +{ CPUFUNC(op_5030_3), 0, 20528 }, /* ADD.B #,(d8,An,Xn) */ +{ CPUFUNC(op_5038_0), 0, 20536 }, /* ADD.B #,(xxx).W */ +{ CPUFUNC(op_5039_0), 0, 20537 }, /* ADD.B #,(xxx).L */ +{ CPUFUNC(op_5040_0), 0, 20544 }, /* ADD.W #,Dn */ +{ CPUFUNC_FF(op_5048_0), 0, 20552 }, /* ADDA.W #,An */ +{ CPUFUNC(op_5050_0), 0, 20560 }, /* ADD.W #,(An) */ +{ CPUFUNC(op_5058_0), 0, 20568 }, /* ADD.W #,(An)+ */ +{ CPUFUNC(op_5060_0), 0, 20576 }, /* ADD.W #,-(An) */ +{ CPUFUNC(op_5068_0), 0, 20584 }, /* ADD.W #,(d16,An) */ +{ CPUFUNC(op_5070_3), 0, 20592 }, /* ADD.W #,(d8,An,Xn) */ +{ CPUFUNC(op_5078_0), 0, 20600 }, /* ADD.W #,(xxx).W */ +{ CPUFUNC(op_5079_0), 0, 20601 }, /* ADD.W #,(xxx).L */ +{ CPUFUNC(op_5080_0), 0, 20608 }, /* ADD.L #,Dn */ +{ CPUFUNC_FF(op_5088_0), 0, 20616 }, /* ADDA.L #,An */ +{ CPUFUNC(op_5090_0), 0, 20624 }, /* ADD.L #,(An) */ +{ CPUFUNC(op_5098_0), 0, 20632 }, /* ADD.L #,(An)+ */ +{ CPUFUNC(op_50a0_0), 0, 20640 }, /* ADD.L #,-(An) */ +{ CPUFUNC(op_50a8_0), 0, 20648 }, /* ADD.L #,(d16,An) */ +{ CPUFUNC(op_50b0_3), 0, 20656 }, /* ADD.L #,(d8,An,Xn) */ +{ CPUFUNC(op_50b8_0), 0, 20664 }, /* ADD.L #,(xxx).W */ +{ CPUFUNC(op_50b9_0), 0, 20665 }, /* ADD.L #,(xxx).L */ +{ CPUFUNC_FF(op_50c0_0), 0, 20672 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_50c8_0), 0, 20680 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_50d0_0), 0, 20688 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_50d8_0), 0, 20696 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_50e0_0), 0, 20704 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_50e8_0), 0, 20712 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_50f0_3), 0, 20720 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_50f8_0), 0, 20728 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_50f9_0), 0, 20729 }, /* Scc.B (xxx).L */ +{ CPUFUNC(op_5100_0), 0, 20736 }, /* SUB.B #,Dn */ +{ CPUFUNC(op_5110_0), 0, 20752 }, /* SUB.B #,(An) */ +{ CPUFUNC(op_5118_0), 0, 20760 }, /* SUB.B #,(An)+ */ +{ CPUFUNC(op_5120_0), 0, 20768 }, /* SUB.B #,-(An) */ +{ CPUFUNC(op_5128_0), 0, 20776 }, /* SUB.B #,(d16,An) */ +{ CPUFUNC(op_5130_3), 0, 20784 }, /* SUB.B #,(d8,An,Xn) */ +{ CPUFUNC(op_5138_0), 0, 20792 }, /* SUB.B #,(xxx).W */ +{ CPUFUNC(op_5139_0), 0, 20793 }, /* SUB.B #,(xxx).L */ +{ CPUFUNC(op_5140_0), 0, 20800 }, /* SUB.W #,Dn */ +{ CPUFUNC_FF(op_5148_0), 0, 20808 }, /* SUBA.W #,An */ +{ CPUFUNC(op_5150_0), 0, 20816 }, /* SUB.W #,(An) */ +{ CPUFUNC(op_5158_0), 0, 20824 }, /* SUB.W #,(An)+ */ +{ CPUFUNC(op_5160_0), 0, 20832 }, /* SUB.W #,-(An) */ +{ CPUFUNC(op_5168_0), 0, 20840 }, /* SUB.W #,(d16,An) */ +{ CPUFUNC(op_5170_3), 0, 20848 }, /* SUB.W #,(d8,An,Xn) */ +{ CPUFUNC(op_5178_0), 0, 20856 }, /* SUB.W #,(xxx).W */ +{ CPUFUNC(op_5179_0), 0, 20857 }, /* SUB.W #,(xxx).L */ +{ CPUFUNC(op_5180_0), 0, 20864 }, /* SUB.L #,Dn */ +{ CPUFUNC_FF(op_5188_0), 0, 20872 }, /* SUBA.L #,An */ +{ CPUFUNC(op_5190_0), 0, 20880 }, /* SUB.L #,(An) */ +{ CPUFUNC(op_5198_0), 0, 20888 }, /* SUB.L #,(An)+ */ +{ CPUFUNC(op_51a0_0), 0, 20896 }, /* SUB.L #,-(An) */ +{ CPUFUNC(op_51a8_0), 0, 20904 }, /* SUB.L #,(d16,An) */ +{ CPUFUNC(op_51b0_3), 0, 20912 }, /* SUB.L #,(d8,An,Xn) */ +{ CPUFUNC(op_51b8_0), 0, 20920 }, /* SUB.L #,(xxx).W */ +{ CPUFUNC(op_51b9_0), 0, 20921 }, /* SUB.L #,(xxx).L */ +{ CPUFUNC_FF(op_51c0_0), 0, 20928 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_51c8_0), 0, 20936 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_51d0_0), 0, 20944 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_51d8_0), 0, 20952 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_51e0_0), 0, 20960 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_51e8_0), 0, 20968 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_51f0_3), 0, 20976 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_51f8_0), 0, 20984 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_51f9_0), 0, 20985 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_52c0_0), 0, 21184 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_52c8_0), 0, 21192 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_52d0_0), 0, 21200 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_52d8_0), 0, 21208 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_52e0_0), 0, 21216 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_52e8_0), 0, 21224 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_52f0_3), 0, 21232 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_52f8_0), 0, 21240 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_52f9_0), 0, 21241 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_53c0_0), 0, 21440 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_53c8_0), 0, 21448 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_53d0_0), 0, 21456 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_53d8_0), 0, 21464 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_53e0_0), 0, 21472 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_53e8_0), 0, 21480 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_53f0_3), 0, 21488 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_53f8_0), 0, 21496 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_53f9_0), 0, 21497 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_54c0_0), 0, 21696 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_54c8_0), 0, 21704 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_54d0_0), 0, 21712 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_54d8_0), 0, 21720 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_54e0_0), 0, 21728 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_54e8_0), 0, 21736 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_54f0_3), 0, 21744 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_54f8_0), 0, 21752 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_54f9_0), 0, 21753 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_55c0_0), 0, 21952 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_55c8_0), 0, 21960 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_55d0_0), 0, 21968 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_55d8_0), 0, 21976 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_55e0_0), 0, 21984 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_55e8_0), 0, 21992 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_55f0_3), 0, 22000 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_55f8_0), 0, 22008 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_55f9_0), 0, 22009 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_56c0_0), 0, 22208 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_56c8_0), 0, 22216 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_56d0_0), 0, 22224 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_56d8_0), 0, 22232 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_56e0_0), 0, 22240 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_56e8_0), 0, 22248 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_56f0_3), 0, 22256 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_56f8_0), 0, 22264 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_56f9_0), 0, 22265 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_57c0_0), 0, 22464 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_57c8_0), 0, 22472 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_57d0_0), 0, 22480 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_57d8_0), 0, 22488 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_57e0_0), 0, 22496 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_57e8_0), 0, 22504 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_57f0_3), 0, 22512 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_57f8_0), 0, 22520 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_57f9_0), 0, 22521 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_58c0_0), 0, 22720 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_58c8_0), 0, 22728 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_58d0_0), 0, 22736 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_58d8_0), 0, 22744 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_58e0_0), 0, 22752 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_58e8_0), 0, 22760 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_58f0_3), 0, 22768 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_58f8_0), 0, 22776 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_58f9_0), 0, 22777 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_59c0_0), 0, 22976 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_59c8_0), 0, 22984 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_59d0_0), 0, 22992 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_59d8_0), 0, 23000 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_59e0_0), 0, 23008 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_59e8_0), 0, 23016 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_59f0_3), 0, 23024 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_59f8_0), 0, 23032 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_59f9_0), 0, 23033 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5ac0_0), 0, 23232 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5ac8_0), 0, 23240 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5ad0_0), 0, 23248 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5ad8_0), 0, 23256 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ae0_0), 0, 23264 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ae8_0), 0, 23272 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5af0_3), 0, 23280 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5af8_0), 0, 23288 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5af9_0), 0, 23289 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5bc0_0), 0, 23488 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5bc8_0), 0, 23496 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5bd0_0), 0, 23504 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5bd8_0), 0, 23512 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5be0_0), 0, 23520 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5be8_0), 0, 23528 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5bf0_3), 0, 23536 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5bf8_0), 0, 23544 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5bf9_0), 0, 23545 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5cc0_0), 0, 23744 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5cc8_0), 0, 23752 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5cd0_0), 0, 23760 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5cd8_0), 0, 23768 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ce0_0), 0, 23776 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ce8_0), 0, 23784 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5cf0_3), 0, 23792 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5cf8_0), 0, 23800 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5cf9_0), 0, 23801 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5dc0_0), 0, 24000 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5dc8_0), 0, 24008 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5dd0_0), 0, 24016 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5dd8_0), 0, 24024 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5de0_0), 0, 24032 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5de8_0), 0, 24040 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5df0_3), 0, 24048 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5df8_0), 0, 24056 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5df9_0), 0, 24057 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5ec0_0), 0, 24256 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5ec8_0), 0, 24264 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5ed0_0), 0, 24272 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5ed8_0), 0, 24280 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ee0_0), 0, 24288 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ee8_0), 0, 24296 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5ef0_3), 0, 24304 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5ef8_0), 0, 24312 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5ef9_0), 0, 24313 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5fc0_0), 0, 24512 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5fc8_0), 0, 24520 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5fd0_0), 0, 24528 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5fd8_0), 0, 24536 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5fe0_0), 0, 24544 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5fe8_0), 0, 24552 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5ff0_3), 0, 24560 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5ff8_0), 0, 24568 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5ff9_0), 0, 24569 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_6000_0), 0, 24576 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6001_0), 0, 24577 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_60ff_3), 0, 24831 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6100_0), 0, 24832 }, /* BSR.W #.W */ +{ CPUFUNC_FF(op_6101_0), 0, 24833 }, /* BSR.B # */ +{ CPUFUNC_FF(op_61ff_0), 0, 25087 }, /* BSR.L #.L */ +{ CPUFUNC_FF(op_6200_0), 0, 25088 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6201_0), 0, 25089 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_62ff_3), 0, 25343 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6300_0), 0, 25344 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6301_0), 0, 25345 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_63ff_3), 0, 25599 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6400_0), 0, 25600 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6401_0), 0, 25601 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_64ff_3), 0, 25855 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6500_0), 0, 25856 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6501_0), 0, 25857 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_65ff_3), 0, 26111 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6600_0), 0, 26112 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6601_0), 0, 26113 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_66ff_3), 0, 26367 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6700_0), 0, 26368 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6701_0), 0, 26369 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_67ff_3), 0, 26623 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6800_0), 0, 26624 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6801_0), 0, 26625 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_68ff_3), 0, 26879 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6900_0), 0, 26880 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6901_0), 0, 26881 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_69ff_3), 0, 27135 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6a00_0), 0, 27136 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6a01_0), 0, 27137 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6aff_3), 0, 27391 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6b00_0), 0, 27392 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6b01_0), 0, 27393 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6bff_3), 0, 27647 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6c00_0), 0, 27648 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6c01_0), 0, 27649 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6cff_3), 0, 27903 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6d00_0), 0, 27904 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6d01_0), 0, 27905 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6dff_3), 0, 28159 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6e00_0), 0, 28160 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6e01_0), 0, 28161 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6eff_3), 0, 28415 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6f00_0), 0, 28416 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6f01_0), 0, 28417 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6fff_3), 0, 28671 }, /* Bcc.L #.L */ +{ CPUFUNC(op_7000_0), 0, 28672 }, /* MOVE.L #,Dn */ +{ CPUFUNC_FF(op_7100_0), 0, 28928 }, /* EMULOP_RETURN.L */ +{ CPUFUNC_FF(op_7101_0), 0, 28929 }, /* EMULOP.L # */ +{ CPUFUNC(op_8000_0), 0, 32768 }, /* OR.B Dn,Dn */ +{ CPUFUNC(op_8010_0), 0, 32784 }, /* OR.B (An),Dn */ +{ CPUFUNC(op_8018_0), 0, 32792 }, /* OR.B (An)+,Dn */ +{ CPUFUNC(op_8020_0), 0, 32800 }, /* OR.B -(An),Dn */ +{ CPUFUNC(op_8028_0), 0, 32808 }, /* OR.B (d16,An),Dn */ +{ CPUFUNC(op_8030_3), 0, 32816 }, /* OR.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_8038_0), 0, 32824 }, /* OR.B (xxx).W,Dn */ +{ CPUFUNC(op_8039_0), 0, 32825 }, /* OR.B (xxx).L,Dn */ +{ CPUFUNC(op_803a_0), 0, 32826 }, /* OR.B (d16,PC),Dn */ +{ CPUFUNC(op_803b_3), 0, 32827 }, /* OR.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_803c_0), 0, 32828 }, /* OR.B #.B,Dn */ +{ CPUFUNC(op_8040_0), 0, 32832 }, /* OR.W Dn,Dn */ +{ CPUFUNC(op_8050_0), 0, 32848 }, /* OR.W (An),Dn */ +{ CPUFUNC(op_8058_0), 0, 32856 }, /* OR.W (An)+,Dn */ +{ CPUFUNC(op_8060_0), 0, 32864 }, /* OR.W -(An),Dn */ +{ CPUFUNC(op_8068_0), 0, 32872 }, /* OR.W (d16,An),Dn */ +{ CPUFUNC(op_8070_3), 0, 32880 }, /* OR.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_8078_0), 0, 32888 }, /* OR.W (xxx).W,Dn */ +{ CPUFUNC(op_8079_0), 0, 32889 }, /* OR.W (xxx).L,Dn */ +{ CPUFUNC(op_807a_0), 0, 32890 }, /* OR.W (d16,PC),Dn */ +{ CPUFUNC(op_807b_3), 0, 32891 }, /* OR.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_807c_0), 0, 32892 }, /* OR.W #.W,Dn */ +{ CPUFUNC(op_8080_0), 0, 32896 }, /* OR.L Dn,Dn */ +{ CPUFUNC(op_8090_0), 0, 32912 }, /* OR.L (An),Dn */ +{ CPUFUNC(op_8098_0), 0, 32920 }, /* OR.L (An)+,Dn */ +{ CPUFUNC(op_80a0_0), 0, 32928 }, /* OR.L -(An),Dn */ +{ CPUFUNC(op_80a8_0), 0, 32936 }, /* OR.L (d16,An),Dn */ +{ CPUFUNC(op_80b0_3), 0, 32944 }, /* OR.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_80b8_0), 0, 32952 }, /* OR.L (xxx).W,Dn */ +{ CPUFUNC(op_80b9_0), 0, 32953 }, /* OR.L (xxx).L,Dn */ +{ CPUFUNC(op_80ba_0), 0, 32954 }, /* OR.L (d16,PC),Dn */ +{ CPUFUNC(op_80bb_3), 0, 32955 }, /* OR.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_80bc_0), 0, 32956 }, /* OR.L #.L,Dn */ +{ CPUFUNC(op_80c0_0), 0, 32960 }, /* DIVU.W Dn,Dn */ +{ CPUFUNC(op_80d0_0), 0, 32976 }, /* DIVU.W (An),Dn */ +{ CPUFUNC(op_80d8_0), 0, 32984 }, /* DIVU.W (An)+,Dn */ +{ CPUFUNC(op_80e0_0), 0, 32992 }, /* DIVU.W -(An),Dn */ +{ CPUFUNC(op_80e8_0), 0, 33000 }, /* DIVU.W (d16,An),Dn */ +{ CPUFUNC(op_80f0_3), 0, 33008 }, /* DIVU.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_80f8_0), 0, 33016 }, /* DIVU.W (xxx).W,Dn */ +{ CPUFUNC(op_80f9_0), 0, 33017 }, /* DIVU.W (xxx).L,Dn */ +{ CPUFUNC(op_80fa_0), 0, 33018 }, /* DIVU.W (d16,PC),Dn */ +{ CPUFUNC(op_80fb_3), 0, 33019 }, /* DIVU.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_80fc_0), 0, 33020 }, /* DIVU.W #.W,Dn */ +{ CPUFUNC(op_8100_1), 0, 33024 }, /* SBCD.B Dn,Dn */ +{ CPUFUNC(op_8108_1), 0, 33032 }, /* SBCD.B -(An),-(An) */ +{ CPUFUNC(op_8110_0), 0, 33040 }, /* OR.B Dn,(An) */ +{ CPUFUNC(op_8118_0), 0, 33048 }, /* OR.B Dn,(An)+ */ +{ CPUFUNC(op_8120_0), 0, 33056 }, /* OR.B Dn,-(An) */ +{ CPUFUNC(op_8128_0), 0, 33064 }, /* OR.B Dn,(d16,An) */ +{ CPUFUNC(op_8130_3), 0, 33072 }, /* OR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_8138_0), 0, 33080 }, /* OR.B Dn,(xxx).W */ +{ CPUFUNC(op_8139_0), 0, 33081 }, /* OR.B Dn,(xxx).L */ +{ CPUFUNC(op_8150_0), 0, 33104 }, /* OR.W Dn,(An) */ +{ CPUFUNC(op_8158_0), 0, 33112 }, /* OR.W Dn,(An)+ */ +{ CPUFUNC(op_8160_0), 0, 33120 }, /* OR.W Dn,-(An) */ +{ CPUFUNC(op_8168_0), 0, 33128 }, /* OR.W Dn,(d16,An) */ +{ CPUFUNC(op_8170_3), 0, 33136 }, /* OR.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_8178_0), 0, 33144 }, /* OR.W Dn,(xxx).W */ +{ CPUFUNC(op_8179_0), 0, 33145 }, /* OR.W Dn,(xxx).L */ +{ CPUFUNC(op_8190_0), 0, 33168 }, /* OR.L Dn,(An) */ +{ CPUFUNC(op_8198_0), 0, 33176 }, /* OR.L Dn,(An)+ */ +{ CPUFUNC(op_81a0_0), 0, 33184 }, /* OR.L Dn,-(An) */ +{ CPUFUNC(op_81a8_0), 0, 33192 }, /* OR.L Dn,(d16,An) */ +{ CPUFUNC(op_81b0_3), 0, 33200 }, /* OR.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_81b8_0), 0, 33208 }, /* OR.L Dn,(xxx).W */ +{ CPUFUNC(op_81b9_0), 0, 33209 }, /* OR.L Dn,(xxx).L */ +{ CPUFUNC(op_81c0_0), 0, 33216 }, /* DIVS.W Dn,Dn */ +{ CPUFUNC(op_81d0_0), 0, 33232 }, /* DIVS.W (An),Dn */ +{ CPUFUNC(op_81d8_0), 0, 33240 }, /* DIVS.W (An)+,Dn */ +{ CPUFUNC(op_81e0_0), 0, 33248 }, /* DIVS.W -(An),Dn */ +{ CPUFUNC(op_81e8_0), 0, 33256 }, /* DIVS.W (d16,An),Dn */ +{ CPUFUNC(op_81f0_3), 0, 33264 }, /* DIVS.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_81f8_0), 0, 33272 }, /* DIVS.W (xxx).W,Dn */ +{ CPUFUNC(op_81f9_0), 0, 33273 }, /* DIVS.W (xxx).L,Dn */ +{ CPUFUNC(op_81fa_0), 0, 33274 }, /* DIVS.W (d16,PC),Dn */ +{ CPUFUNC(op_81fb_3), 0, 33275 }, /* DIVS.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_81fc_0), 0, 33276 }, /* DIVS.W #.W,Dn */ +{ CPUFUNC(op_9000_0), 0, 36864 }, /* SUB.B Dn,Dn */ +{ CPUFUNC(op_9010_0), 0, 36880 }, /* SUB.B (An),Dn */ +{ CPUFUNC(op_9018_0), 0, 36888 }, /* SUB.B (An)+,Dn */ +{ CPUFUNC(op_9020_0), 0, 36896 }, /* SUB.B -(An),Dn */ +{ CPUFUNC(op_9028_0), 0, 36904 }, /* SUB.B (d16,An),Dn */ +{ CPUFUNC(op_9030_3), 0, 36912 }, /* SUB.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_9038_0), 0, 36920 }, /* SUB.B (xxx).W,Dn */ +{ CPUFUNC(op_9039_0), 0, 36921 }, /* SUB.B (xxx).L,Dn */ +{ CPUFUNC(op_903a_0), 0, 36922 }, /* SUB.B (d16,PC),Dn */ +{ CPUFUNC(op_903b_3), 0, 36923 }, /* SUB.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_903c_0), 0, 36924 }, /* SUB.B #.B,Dn */ +{ CPUFUNC(op_9040_0), 0, 36928 }, /* SUB.W Dn,Dn */ +{ CPUFUNC(op_9048_0), 0, 36936 }, /* SUB.W An,Dn */ +{ CPUFUNC(op_9050_0), 0, 36944 }, /* SUB.W (An),Dn */ +{ CPUFUNC(op_9058_0), 0, 36952 }, /* SUB.W (An)+,Dn */ +{ CPUFUNC(op_9060_0), 0, 36960 }, /* SUB.W -(An),Dn */ +{ CPUFUNC(op_9068_0), 0, 36968 }, /* SUB.W (d16,An),Dn */ +{ CPUFUNC(op_9070_3), 0, 36976 }, /* SUB.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_9078_0), 0, 36984 }, /* SUB.W (xxx).W,Dn */ +{ CPUFUNC(op_9079_0), 0, 36985 }, /* SUB.W (xxx).L,Dn */ +{ CPUFUNC(op_907a_0), 0, 36986 }, /* SUB.W (d16,PC),Dn */ +{ CPUFUNC(op_907b_3), 0, 36987 }, /* SUB.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_907c_0), 0, 36988 }, /* SUB.W #.W,Dn */ +{ CPUFUNC(op_9080_0), 0, 36992 }, /* SUB.L Dn,Dn */ +{ CPUFUNC(op_9088_0), 0, 37000 }, /* SUB.L An,Dn */ +{ CPUFUNC(op_9090_0), 0, 37008 }, /* SUB.L (An),Dn */ +{ CPUFUNC(op_9098_0), 0, 37016 }, /* SUB.L (An)+,Dn */ +{ CPUFUNC(op_90a0_0), 0, 37024 }, /* SUB.L -(An),Dn */ +{ CPUFUNC(op_90a8_0), 0, 37032 }, /* SUB.L (d16,An),Dn */ +{ CPUFUNC(op_90b0_3), 0, 37040 }, /* SUB.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_90b8_0), 0, 37048 }, /* SUB.L (xxx).W,Dn */ +{ CPUFUNC(op_90b9_0), 0, 37049 }, /* SUB.L (xxx).L,Dn */ +{ CPUFUNC(op_90ba_0), 0, 37050 }, /* SUB.L (d16,PC),Dn */ +{ CPUFUNC(op_90bb_3), 0, 37051 }, /* SUB.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_90bc_0), 0, 37052 }, /* SUB.L #.L,Dn */ +{ CPUFUNC_FF(op_90c0_0), 0, 37056 }, /* SUBA.W Dn,An */ +{ CPUFUNC_FF(op_90c8_0), 0, 37064 }, /* SUBA.W An,An */ +{ CPUFUNC_FF(op_90d0_0), 0, 37072 }, /* SUBA.W (An),An */ +{ CPUFUNC_FF(op_90d8_0), 0, 37080 }, /* SUBA.W (An)+,An */ +{ CPUFUNC_FF(op_90e0_0), 0, 37088 }, /* SUBA.W -(An),An */ +{ CPUFUNC_FF(op_90e8_0), 0, 37096 }, /* SUBA.W (d16,An),An */ +{ CPUFUNC_FF(op_90f0_3), 0, 37104 }, /* SUBA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_90f8_0), 0, 37112 }, /* SUBA.W (xxx).W,An */ +{ CPUFUNC_FF(op_90f9_0), 0, 37113 }, /* SUBA.W (xxx).L,An */ +{ CPUFUNC_FF(op_90fa_0), 0, 37114 }, /* SUBA.W (d16,PC),An */ +{ CPUFUNC_FF(op_90fb_3), 0, 37115 }, /* SUBA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_90fc_0), 0, 37116 }, /* SUBA.W #.W,An */ +{ CPUFUNC(op_9100_0), 0, 37120 }, /* SUBX.B Dn,Dn */ +{ CPUFUNC(op_9108_0), 0, 37128 }, /* SUBX.B -(An),-(An) */ +{ CPUFUNC(op_9110_0), 0, 37136 }, /* SUB.B Dn,(An) */ +{ CPUFUNC(op_9118_0), 0, 37144 }, /* SUB.B Dn,(An)+ */ +{ CPUFUNC(op_9120_0), 0, 37152 }, /* SUB.B Dn,-(An) */ +{ CPUFUNC(op_9128_0), 0, 37160 }, /* SUB.B Dn,(d16,An) */ +{ CPUFUNC(op_9130_3), 0, 37168 }, /* SUB.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_9138_0), 0, 37176 }, /* SUB.B Dn,(xxx).W */ +{ CPUFUNC(op_9139_0), 0, 37177 }, /* SUB.B Dn,(xxx).L */ +{ CPUFUNC(op_9140_0), 0, 37184 }, /* SUBX.W Dn,Dn */ +{ CPUFUNC(op_9148_0), 0, 37192 }, /* SUBX.W -(An),-(An) */ +{ CPUFUNC(op_9150_0), 0, 37200 }, /* SUB.W Dn,(An) */ +{ CPUFUNC(op_9158_0), 0, 37208 }, /* SUB.W Dn,(An)+ */ +{ CPUFUNC(op_9160_0), 0, 37216 }, /* SUB.W Dn,-(An) */ +{ CPUFUNC(op_9168_0), 0, 37224 }, /* SUB.W Dn,(d16,An) */ +{ CPUFUNC(op_9170_3), 0, 37232 }, /* SUB.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_9178_0), 0, 37240 }, /* SUB.W Dn,(xxx).W */ +{ CPUFUNC(op_9179_0), 0, 37241 }, /* SUB.W Dn,(xxx).L */ +{ CPUFUNC(op_9180_0), 0, 37248 }, /* SUBX.L Dn,Dn */ +{ CPUFUNC(op_9188_0), 0, 37256 }, /* SUBX.L -(An),-(An) */ +{ CPUFUNC(op_9190_0), 0, 37264 }, /* SUB.L Dn,(An) */ +{ CPUFUNC(op_9198_0), 0, 37272 }, /* SUB.L Dn,(An)+ */ +{ CPUFUNC(op_91a0_0), 0, 37280 }, /* SUB.L Dn,-(An) */ +{ CPUFUNC(op_91a8_0), 0, 37288 }, /* SUB.L Dn,(d16,An) */ +{ CPUFUNC(op_91b0_3), 0, 37296 }, /* SUB.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_91b8_0), 0, 37304 }, /* SUB.L Dn,(xxx).W */ +{ CPUFUNC(op_91b9_0), 0, 37305 }, /* SUB.L Dn,(xxx).L */ +{ CPUFUNC_FF(op_91c0_0), 0, 37312 }, /* SUBA.L Dn,An */ +{ CPUFUNC_FF(op_91c8_0), 0, 37320 }, /* SUBA.L An,An */ +{ CPUFUNC_FF(op_91d0_0), 0, 37328 }, /* SUBA.L (An),An */ +{ CPUFUNC_FF(op_91d8_0), 0, 37336 }, /* SUBA.L (An)+,An */ +{ CPUFUNC_FF(op_91e0_0), 0, 37344 }, /* SUBA.L -(An),An */ +{ CPUFUNC_FF(op_91e8_0), 0, 37352 }, /* SUBA.L (d16,An),An */ +{ CPUFUNC_FF(op_91f0_3), 0, 37360 }, /* SUBA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_91f8_0), 0, 37368 }, /* SUBA.L (xxx).W,An */ +{ CPUFUNC_FF(op_91f9_0), 0, 37369 }, /* SUBA.L (xxx).L,An */ +{ CPUFUNC_FF(op_91fa_0), 0, 37370 }, /* SUBA.L (d16,PC),An */ +{ CPUFUNC_FF(op_91fb_3), 0, 37371 }, /* SUBA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_91fc_0), 0, 37372 }, /* SUBA.L #.L,An */ +{ CPUFUNC(op_b000_0), 0, 45056 }, /* CMP.B Dn,Dn */ +{ CPUFUNC(op_b010_0), 0, 45072 }, /* CMP.B (An),Dn */ +{ CPUFUNC(op_b018_0), 0, 45080 }, /* CMP.B (An)+,Dn */ +{ CPUFUNC(op_b020_0), 0, 45088 }, /* CMP.B -(An),Dn */ +{ CPUFUNC(op_b028_0), 0, 45096 }, /* CMP.B (d16,An),Dn */ +{ CPUFUNC(op_b030_3), 0, 45104 }, /* CMP.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_b038_0), 0, 45112 }, /* CMP.B (xxx).W,Dn */ +{ CPUFUNC(op_b039_0), 0, 45113 }, /* CMP.B (xxx).L,Dn */ +{ CPUFUNC(op_b03a_0), 0, 45114 }, /* CMP.B (d16,PC),Dn */ +{ CPUFUNC(op_b03b_3), 0, 45115 }, /* CMP.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b03c_0), 0, 45116 }, /* CMP.B #.B,Dn */ +{ CPUFUNC(op_b040_0), 0, 45120 }, /* CMP.W Dn,Dn */ +{ CPUFUNC(op_b048_0), 0, 45128 }, /* CMP.W An,Dn */ +{ CPUFUNC(op_b050_0), 0, 45136 }, /* CMP.W (An),Dn */ +{ CPUFUNC(op_b058_0), 0, 45144 }, /* CMP.W (An)+,Dn */ +{ CPUFUNC(op_b060_0), 0, 45152 }, /* CMP.W -(An),Dn */ +{ CPUFUNC(op_b068_0), 0, 45160 }, /* CMP.W (d16,An),Dn */ +{ CPUFUNC(op_b070_3), 0, 45168 }, /* CMP.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_b078_0), 0, 45176 }, /* CMP.W (xxx).W,Dn */ +{ CPUFUNC(op_b079_0), 0, 45177 }, /* CMP.W (xxx).L,Dn */ +{ CPUFUNC(op_b07a_0), 0, 45178 }, /* CMP.W (d16,PC),Dn */ +{ CPUFUNC(op_b07b_3), 0, 45179 }, /* CMP.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b07c_0), 0, 45180 }, /* CMP.W #.W,Dn */ +{ CPUFUNC(op_b080_0), 0, 45184 }, /* CMP.L Dn,Dn */ +{ CPUFUNC(op_b088_0), 0, 45192 }, /* CMP.L An,Dn */ +{ CPUFUNC(op_b090_0), 0, 45200 }, /* CMP.L (An),Dn */ +{ CPUFUNC(op_b098_0), 0, 45208 }, /* CMP.L (An)+,Dn */ +{ CPUFUNC(op_b0a0_0), 0, 45216 }, /* CMP.L -(An),Dn */ +{ CPUFUNC(op_b0a8_0), 0, 45224 }, /* CMP.L (d16,An),Dn */ +{ CPUFUNC(op_b0b0_3), 0, 45232 }, /* CMP.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_b0b8_0), 0, 45240 }, /* CMP.L (xxx).W,Dn */ +{ CPUFUNC(op_b0b9_0), 0, 45241 }, /* CMP.L (xxx).L,Dn */ +{ CPUFUNC(op_b0ba_0), 0, 45242 }, /* CMP.L (d16,PC),Dn */ +{ CPUFUNC(op_b0bb_3), 0, 45243 }, /* CMP.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b0bc_0), 0, 45244 }, /* CMP.L #.L,Dn */ +{ CPUFUNC(op_b0c0_0), 0, 45248 }, /* CMPA.W Dn,An */ +{ CPUFUNC(op_b0c8_0), 0, 45256 }, /* CMPA.W An,An */ +{ CPUFUNC(op_b0d0_0), 0, 45264 }, /* CMPA.W (An),An */ +{ CPUFUNC(op_b0d8_0), 0, 45272 }, /* CMPA.W (An)+,An */ +{ CPUFUNC(op_b0e0_0), 0, 45280 }, /* CMPA.W -(An),An */ +{ CPUFUNC(op_b0e8_0), 0, 45288 }, /* CMPA.W (d16,An),An */ +{ CPUFUNC(op_b0f0_3), 0, 45296 }, /* CMPA.W (d8,An,Xn),An */ +{ CPUFUNC(op_b0f8_0), 0, 45304 }, /* CMPA.W (xxx).W,An */ +{ CPUFUNC(op_b0f9_0), 0, 45305 }, /* CMPA.W (xxx).L,An */ +{ CPUFUNC(op_b0fa_0), 0, 45306 }, /* CMPA.W (d16,PC),An */ +{ CPUFUNC(op_b0fb_3), 0, 45307 }, /* CMPA.W (d8,PC,Xn),An */ +{ CPUFUNC(op_b0fc_0), 0, 45308 }, /* CMPA.W #.W,An */ +{ CPUFUNC(op_b100_0), 0, 45312 }, /* EOR.B Dn,Dn */ +{ CPUFUNC(op_b108_0), 0, 45320 }, /* CMPM.B (An)+,(An)+ */ +{ CPUFUNC(op_b110_0), 0, 45328 }, /* EOR.B Dn,(An) */ +{ CPUFUNC(op_b118_0), 0, 45336 }, /* EOR.B Dn,(An)+ */ +{ CPUFUNC(op_b120_0), 0, 45344 }, /* EOR.B Dn,-(An) */ +{ CPUFUNC(op_b128_0), 0, 45352 }, /* EOR.B Dn,(d16,An) */ +{ CPUFUNC(op_b130_3), 0, 45360 }, /* EOR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b138_0), 0, 45368 }, /* EOR.B Dn,(xxx).W */ +{ CPUFUNC(op_b139_0), 0, 45369 }, /* EOR.B Dn,(xxx).L */ +{ CPUFUNC(op_b140_0), 0, 45376 }, /* EOR.W Dn,Dn */ +{ CPUFUNC(op_b148_0), 0, 45384 }, /* CMPM.W (An)+,(An)+ */ +{ CPUFUNC(op_b150_0), 0, 45392 }, /* EOR.W Dn,(An) */ +{ CPUFUNC(op_b158_0), 0, 45400 }, /* EOR.W Dn,(An)+ */ +{ CPUFUNC(op_b160_0), 0, 45408 }, /* EOR.W Dn,-(An) */ +{ CPUFUNC(op_b168_0), 0, 45416 }, /* EOR.W Dn,(d16,An) */ +{ CPUFUNC(op_b170_3), 0, 45424 }, /* EOR.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b178_0), 0, 45432 }, /* EOR.W Dn,(xxx).W */ +{ CPUFUNC(op_b179_0), 0, 45433 }, /* EOR.W Dn,(xxx).L */ +{ CPUFUNC(op_b180_0), 0, 45440 }, /* EOR.L Dn,Dn */ +{ CPUFUNC(op_b188_0), 0, 45448 }, /* CMPM.L (An)+,(An)+ */ +{ CPUFUNC(op_b190_0), 0, 45456 }, /* EOR.L Dn,(An) */ +{ CPUFUNC(op_b198_0), 0, 45464 }, /* EOR.L Dn,(An)+ */ +{ CPUFUNC(op_b1a0_0), 0, 45472 }, /* EOR.L Dn,-(An) */ +{ CPUFUNC(op_b1a8_0), 0, 45480 }, /* EOR.L Dn,(d16,An) */ +{ CPUFUNC(op_b1b0_3), 0, 45488 }, /* EOR.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b1b8_0), 0, 45496 }, /* EOR.L Dn,(xxx).W */ +{ CPUFUNC(op_b1b9_0), 0, 45497 }, /* EOR.L Dn,(xxx).L */ +{ CPUFUNC(op_b1c0_0), 0, 45504 }, /* CMPA.L Dn,An */ +{ CPUFUNC(op_b1c8_0), 0, 45512 }, /* CMPA.L An,An */ +{ CPUFUNC(op_b1d0_0), 0, 45520 }, /* CMPA.L (An),An */ +{ CPUFUNC(op_b1d8_0), 0, 45528 }, /* CMPA.L (An)+,An */ +{ CPUFUNC(op_b1e0_0), 0, 45536 }, /* CMPA.L -(An),An */ +{ CPUFUNC(op_b1e8_0), 0, 45544 }, /* CMPA.L (d16,An),An */ +{ CPUFUNC(op_b1f0_3), 0, 45552 }, /* CMPA.L (d8,An,Xn),An */ +{ CPUFUNC(op_b1f8_0), 0, 45560 }, /* CMPA.L (xxx).W,An */ +{ CPUFUNC(op_b1f9_0), 0, 45561 }, /* CMPA.L (xxx).L,An */ +{ CPUFUNC(op_b1fa_0), 0, 45562 }, /* CMPA.L (d16,PC),An */ +{ CPUFUNC(op_b1fb_3), 0, 45563 }, /* CMPA.L (d8,PC,Xn),An */ +{ CPUFUNC(op_b1fc_0), 0, 45564 }, /* CMPA.L #.L,An */ +{ CPUFUNC(op_c000_0), 0, 49152 }, /* AND.B Dn,Dn */ +{ CPUFUNC(op_c010_0), 0, 49168 }, /* AND.B (An),Dn */ +{ CPUFUNC(op_c018_0), 0, 49176 }, /* AND.B (An)+,Dn */ +{ CPUFUNC(op_c020_0), 0, 49184 }, /* AND.B -(An),Dn */ +{ CPUFUNC(op_c028_0), 0, 49192 }, /* AND.B (d16,An),Dn */ +{ CPUFUNC(op_c030_3), 0, 49200 }, /* AND.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_c038_0), 0, 49208 }, /* AND.B (xxx).W,Dn */ +{ CPUFUNC(op_c039_0), 0, 49209 }, /* AND.B (xxx).L,Dn */ +{ CPUFUNC(op_c03a_0), 0, 49210 }, /* AND.B (d16,PC),Dn */ +{ CPUFUNC(op_c03b_3), 0, 49211 }, /* AND.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c03c_0), 0, 49212 }, /* AND.B #.B,Dn */ +{ CPUFUNC(op_c040_0), 0, 49216 }, /* AND.W Dn,Dn */ +{ CPUFUNC(op_c050_0), 0, 49232 }, /* AND.W (An),Dn */ +{ CPUFUNC(op_c058_0), 0, 49240 }, /* AND.W (An)+,Dn */ +{ CPUFUNC(op_c060_0), 0, 49248 }, /* AND.W -(An),Dn */ +{ CPUFUNC(op_c068_0), 0, 49256 }, /* AND.W (d16,An),Dn */ +{ CPUFUNC(op_c070_3), 0, 49264 }, /* AND.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c078_0), 0, 49272 }, /* AND.W (xxx).W,Dn */ +{ CPUFUNC(op_c079_0), 0, 49273 }, /* AND.W (xxx).L,Dn */ +{ CPUFUNC(op_c07a_0), 0, 49274 }, /* AND.W (d16,PC),Dn */ +{ CPUFUNC(op_c07b_3), 0, 49275 }, /* AND.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c07c_0), 0, 49276 }, /* AND.W #.W,Dn */ +{ CPUFUNC(op_c080_0), 0, 49280 }, /* AND.L Dn,Dn */ +{ CPUFUNC(op_c090_0), 0, 49296 }, /* AND.L (An),Dn */ +{ CPUFUNC(op_c098_0), 0, 49304 }, /* AND.L (An)+,Dn */ +{ CPUFUNC(op_c0a0_0), 0, 49312 }, /* AND.L -(An),Dn */ +{ CPUFUNC(op_c0a8_0), 0, 49320 }, /* AND.L (d16,An),Dn */ +{ CPUFUNC(op_c0b0_3), 0, 49328 }, /* AND.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_c0b8_0), 0, 49336 }, /* AND.L (xxx).W,Dn */ +{ CPUFUNC(op_c0b9_0), 0, 49337 }, /* AND.L (xxx).L,Dn */ +{ CPUFUNC(op_c0ba_0), 0, 49338 }, /* AND.L (d16,PC),Dn */ +{ CPUFUNC(op_c0bb_3), 0, 49339 }, /* AND.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c0bc_0), 0, 49340 }, /* AND.L #.L,Dn */ +{ CPUFUNC(op_c0c0_0), 0, 49344 }, /* MULU.W Dn,Dn */ +{ CPUFUNC(op_c0d0_0), 0, 49360 }, /* MULU.W (An),Dn */ +{ CPUFUNC(op_c0d8_0), 0, 49368 }, /* MULU.W (An)+,Dn */ +{ CPUFUNC(op_c0e0_0), 0, 49376 }, /* MULU.W -(An),Dn */ +{ CPUFUNC(op_c0e8_0), 0, 49384 }, /* MULU.W (d16,An),Dn */ +{ CPUFUNC(op_c0f0_3), 0, 49392 }, /* MULU.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c0f8_0), 0, 49400 }, /* MULU.W (xxx).W,Dn */ +{ CPUFUNC(op_c0f9_0), 0, 49401 }, /* MULU.W (xxx).L,Dn */ +{ CPUFUNC(op_c0fa_0), 0, 49402 }, /* MULU.W (d16,PC),Dn */ +{ CPUFUNC(op_c0fb_3), 0, 49403 }, /* MULU.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c0fc_0), 0, 49404 }, /* MULU.W #.W,Dn */ +{ CPUFUNC(op_c100_1), 0, 49408 }, /* ABCD.B Dn,Dn */ +{ CPUFUNC(op_c108_1), 0, 49416 }, /* ABCD.B -(An),-(An) */ +{ CPUFUNC(op_c110_0), 0, 49424 }, /* AND.B Dn,(An) */ +{ CPUFUNC(op_c118_0), 0, 49432 }, /* AND.B Dn,(An)+ */ +{ CPUFUNC(op_c120_0), 0, 49440 }, /* AND.B Dn,-(An) */ +{ CPUFUNC(op_c128_0), 0, 49448 }, /* AND.B Dn,(d16,An) */ +{ CPUFUNC(op_c130_3), 0, 49456 }, /* AND.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c138_0), 0, 49464 }, /* AND.B Dn,(xxx).W */ +{ CPUFUNC(op_c139_0), 0, 49465 }, /* AND.B Dn,(xxx).L */ +{ CPUFUNC_FF(op_c140_0), 0, 49472 }, /* EXG.L Dn,Dn */ +{ CPUFUNC_FF(op_c148_0), 0, 49480 }, /* EXG.L An,An */ +{ CPUFUNC(op_c150_0), 0, 49488 }, /* AND.W Dn,(An) */ +{ CPUFUNC(op_c158_0), 0, 49496 }, /* AND.W Dn,(An)+ */ +{ CPUFUNC(op_c160_0), 0, 49504 }, /* AND.W Dn,-(An) */ +{ CPUFUNC(op_c168_0), 0, 49512 }, /* AND.W Dn,(d16,An) */ +{ CPUFUNC(op_c170_3), 0, 49520 }, /* AND.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c178_0), 0, 49528 }, /* AND.W Dn,(xxx).W */ +{ CPUFUNC(op_c179_0), 0, 49529 }, /* AND.W Dn,(xxx).L */ +{ CPUFUNC_FF(op_c188_0), 0, 49544 }, /* EXG.L Dn,An */ +{ CPUFUNC(op_c190_0), 0, 49552 }, /* AND.L Dn,(An) */ +{ CPUFUNC(op_c198_0), 0, 49560 }, /* AND.L Dn,(An)+ */ +{ CPUFUNC(op_c1a0_0), 0, 49568 }, /* AND.L Dn,-(An) */ +{ CPUFUNC(op_c1a8_0), 0, 49576 }, /* AND.L Dn,(d16,An) */ +{ CPUFUNC(op_c1b0_3), 0, 49584 }, /* AND.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c1b8_0), 0, 49592 }, /* AND.L Dn,(xxx).W */ +{ CPUFUNC(op_c1b9_0), 0, 49593 }, /* AND.L Dn,(xxx).L */ +{ CPUFUNC(op_c1c0_0), 0, 49600 }, /* MULS.W Dn,Dn */ +{ CPUFUNC(op_c1d0_0), 0, 49616 }, /* MULS.W (An),Dn */ +{ CPUFUNC(op_c1d8_0), 0, 49624 }, /* MULS.W (An)+,Dn */ +{ CPUFUNC(op_c1e0_0), 0, 49632 }, /* MULS.W -(An),Dn */ +{ CPUFUNC(op_c1e8_0), 0, 49640 }, /* MULS.W (d16,An),Dn */ +{ CPUFUNC(op_c1f0_3), 0, 49648 }, /* MULS.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c1f8_0), 0, 49656 }, /* MULS.W (xxx).W,Dn */ +{ CPUFUNC(op_c1f9_0), 0, 49657 }, /* MULS.W (xxx).L,Dn */ +{ CPUFUNC(op_c1fa_0), 0, 49658 }, /* MULS.W (d16,PC),Dn */ +{ CPUFUNC(op_c1fb_3), 0, 49659 }, /* MULS.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c1fc_0), 0, 49660 }, /* MULS.W #.W,Dn */ +{ CPUFUNC(op_d000_0), 0, 53248 }, /* ADD.B Dn,Dn */ +{ CPUFUNC(op_d010_0), 0, 53264 }, /* ADD.B (An),Dn */ +{ CPUFUNC(op_d018_0), 0, 53272 }, /* ADD.B (An)+,Dn */ +{ CPUFUNC(op_d020_0), 0, 53280 }, /* ADD.B -(An),Dn */ +{ CPUFUNC(op_d028_0), 0, 53288 }, /* ADD.B (d16,An),Dn */ +{ CPUFUNC(op_d030_3), 0, 53296 }, /* ADD.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_d038_0), 0, 53304 }, /* ADD.B (xxx).W,Dn */ +{ CPUFUNC(op_d039_0), 0, 53305 }, /* ADD.B (xxx).L,Dn */ +{ CPUFUNC(op_d03a_0), 0, 53306 }, /* ADD.B (d16,PC),Dn */ +{ CPUFUNC(op_d03b_3), 0, 53307 }, /* ADD.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d03c_0), 0, 53308 }, /* ADD.B #.B,Dn */ +{ CPUFUNC(op_d040_0), 0, 53312 }, /* ADD.W Dn,Dn */ +{ CPUFUNC(op_d048_0), 0, 53320 }, /* ADD.W An,Dn */ +{ CPUFUNC(op_d050_0), 0, 53328 }, /* ADD.W (An),Dn */ +{ CPUFUNC(op_d058_0), 0, 53336 }, /* ADD.W (An)+,Dn */ +{ CPUFUNC(op_d060_0), 0, 53344 }, /* ADD.W -(An),Dn */ +{ CPUFUNC(op_d068_0), 0, 53352 }, /* ADD.W (d16,An),Dn */ +{ CPUFUNC(op_d070_3), 0, 53360 }, /* ADD.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_d078_0), 0, 53368 }, /* ADD.W (xxx).W,Dn */ +{ CPUFUNC(op_d079_0), 0, 53369 }, /* ADD.W (xxx).L,Dn */ +{ CPUFUNC(op_d07a_0), 0, 53370 }, /* ADD.W (d16,PC),Dn */ +{ CPUFUNC(op_d07b_3), 0, 53371 }, /* ADD.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d07c_0), 0, 53372 }, /* ADD.W #.W,Dn */ +{ CPUFUNC(op_d080_0), 0, 53376 }, /* ADD.L Dn,Dn */ +{ CPUFUNC(op_d088_0), 0, 53384 }, /* ADD.L An,Dn */ +{ CPUFUNC(op_d090_0), 0, 53392 }, /* ADD.L (An),Dn */ +{ CPUFUNC(op_d098_0), 0, 53400 }, /* ADD.L (An)+,Dn */ +{ CPUFUNC(op_d0a0_0), 0, 53408 }, /* ADD.L -(An),Dn */ +{ CPUFUNC(op_d0a8_0), 0, 53416 }, /* ADD.L (d16,An),Dn */ +{ CPUFUNC(op_d0b0_3), 0, 53424 }, /* ADD.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_d0b8_0), 0, 53432 }, /* ADD.L (xxx).W,Dn */ +{ CPUFUNC(op_d0b9_0), 0, 53433 }, /* ADD.L (xxx).L,Dn */ +{ CPUFUNC(op_d0ba_0), 0, 53434 }, /* ADD.L (d16,PC),Dn */ +{ CPUFUNC(op_d0bb_3), 0, 53435 }, /* ADD.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d0bc_0), 0, 53436 }, /* ADD.L #.L,Dn */ +{ CPUFUNC_FF(op_d0c0_0), 0, 53440 }, /* ADDA.W Dn,An */ +{ CPUFUNC_FF(op_d0c8_0), 0, 53448 }, /* ADDA.W An,An */ +{ CPUFUNC_FF(op_d0d0_0), 0, 53456 }, /* ADDA.W (An),An */ +{ CPUFUNC_FF(op_d0d8_0), 0, 53464 }, /* ADDA.W (An)+,An */ +{ CPUFUNC_FF(op_d0e0_0), 0, 53472 }, /* ADDA.W -(An),An */ +{ CPUFUNC_FF(op_d0e8_0), 0, 53480 }, /* ADDA.W (d16,An),An */ +{ CPUFUNC_FF(op_d0f0_3), 0, 53488 }, /* ADDA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_d0f8_0), 0, 53496 }, /* ADDA.W (xxx).W,An */ +{ CPUFUNC_FF(op_d0f9_0), 0, 53497 }, /* ADDA.W (xxx).L,An */ +{ CPUFUNC_FF(op_d0fa_0), 0, 53498 }, /* ADDA.W (d16,PC),An */ +{ CPUFUNC_FF(op_d0fb_3), 0, 53499 }, /* ADDA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_d0fc_0), 0, 53500 }, /* ADDA.W #.W,An */ +{ CPUFUNC(op_d100_0), 0, 53504 }, /* ADDX.B Dn,Dn */ +{ CPUFUNC(op_d108_0), 0, 53512 }, /* ADDX.B -(An),-(An) */ +{ CPUFUNC(op_d110_0), 0, 53520 }, /* ADD.B Dn,(An) */ +{ CPUFUNC(op_d118_0), 0, 53528 }, /* ADD.B Dn,(An)+ */ +{ CPUFUNC(op_d120_0), 0, 53536 }, /* ADD.B Dn,-(An) */ +{ CPUFUNC(op_d128_0), 0, 53544 }, /* ADD.B Dn,(d16,An) */ +{ CPUFUNC(op_d130_3), 0, 53552 }, /* ADD.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d138_0), 0, 53560 }, /* ADD.B Dn,(xxx).W */ +{ CPUFUNC(op_d139_0), 0, 53561 }, /* ADD.B Dn,(xxx).L */ +{ CPUFUNC(op_d140_0), 0, 53568 }, /* ADDX.W Dn,Dn */ +{ CPUFUNC(op_d148_0), 0, 53576 }, /* ADDX.W -(An),-(An) */ +{ CPUFUNC(op_d150_0), 0, 53584 }, /* ADD.W Dn,(An) */ +{ CPUFUNC(op_d158_0), 0, 53592 }, /* ADD.W Dn,(An)+ */ +{ CPUFUNC(op_d160_0), 0, 53600 }, /* ADD.W Dn,-(An) */ +{ CPUFUNC(op_d168_0), 0, 53608 }, /* ADD.W Dn,(d16,An) */ +{ CPUFUNC(op_d170_3), 0, 53616 }, /* ADD.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d178_0), 0, 53624 }, /* ADD.W Dn,(xxx).W */ +{ CPUFUNC(op_d179_0), 0, 53625 }, /* ADD.W Dn,(xxx).L */ +{ CPUFUNC(op_d180_0), 0, 53632 }, /* ADDX.L Dn,Dn */ +{ CPUFUNC(op_d188_0), 0, 53640 }, /* ADDX.L -(An),-(An) */ +{ CPUFUNC(op_d190_0), 0, 53648 }, /* ADD.L Dn,(An) */ +{ CPUFUNC(op_d198_0), 0, 53656 }, /* ADD.L Dn,(An)+ */ +{ CPUFUNC(op_d1a0_0), 0, 53664 }, /* ADD.L Dn,-(An) */ +{ CPUFUNC(op_d1a8_0), 0, 53672 }, /* ADD.L Dn,(d16,An) */ +{ CPUFUNC(op_d1b0_3), 0, 53680 }, /* ADD.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d1b8_0), 0, 53688 }, /* ADD.L Dn,(xxx).W */ +{ CPUFUNC(op_d1b9_0), 0, 53689 }, /* ADD.L Dn,(xxx).L */ +{ CPUFUNC_FF(op_d1c0_0), 0, 53696 }, /* ADDA.L Dn,An */ +{ CPUFUNC_FF(op_d1c8_0), 0, 53704 }, /* ADDA.L An,An */ +{ CPUFUNC_FF(op_d1d0_0), 0, 53712 }, /* ADDA.L (An),An */ +{ CPUFUNC_FF(op_d1d8_0), 0, 53720 }, /* ADDA.L (An)+,An */ +{ CPUFUNC_FF(op_d1e0_0), 0, 53728 }, /* ADDA.L -(An),An */ +{ CPUFUNC_FF(op_d1e8_0), 0, 53736 }, /* ADDA.L (d16,An),An */ +{ CPUFUNC_FF(op_d1f0_3), 0, 53744 }, /* ADDA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_d1f8_0), 0, 53752 }, /* ADDA.L (xxx).W,An */ +{ CPUFUNC_FF(op_d1f9_0), 0, 53753 }, /* ADDA.L (xxx).L,An */ +{ CPUFUNC_FF(op_d1fa_0), 0, 53754 }, /* ADDA.L (d16,PC),An */ +{ CPUFUNC_FF(op_d1fb_3), 0, 53755 }, /* ADDA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_d1fc_0), 0, 53756 }, /* ADDA.L #.L,An */ +{ CPUFUNC(op_e000_0), 0, 57344 }, /* ASR.B #,Dn */ +{ CPUFUNC(op_e008_0), 0, 57352 }, /* LSR.B #,Dn */ +{ CPUFUNC(op_e010_0), 0, 57360 }, /* ROXR.B #,Dn */ +{ CPUFUNC(op_e018_0), 0, 57368 }, /* ROR.B #,Dn */ +{ CPUFUNC(op_e020_0), 0, 57376 }, /* ASR.B Dn,Dn */ +{ CPUFUNC(op_e028_0), 0, 57384 }, /* LSR.B Dn,Dn */ +{ CPUFUNC(op_e030_0), 0, 57392 }, /* ROXR.B Dn,Dn */ +{ CPUFUNC(op_e038_0), 0, 57400 }, /* ROR.B Dn,Dn */ +{ CPUFUNC(op_e040_0), 0, 57408 }, /* ASR.W #,Dn */ +{ CPUFUNC(op_e048_0), 0, 57416 }, /* LSR.W #,Dn */ +{ CPUFUNC(op_e050_0), 0, 57424 }, /* ROXR.W #,Dn */ +{ CPUFUNC(op_e058_0), 0, 57432 }, /* ROR.W #,Dn */ +{ CPUFUNC(op_e060_0), 0, 57440 }, /* ASR.W Dn,Dn */ +{ CPUFUNC(op_e068_0), 0, 57448 }, /* LSR.W Dn,Dn */ +{ CPUFUNC(op_e070_0), 0, 57456 }, /* ROXR.W Dn,Dn */ +{ CPUFUNC(op_e078_0), 0, 57464 }, /* ROR.W Dn,Dn */ +{ CPUFUNC(op_e080_0), 0, 57472 }, /* ASR.L #,Dn */ +{ CPUFUNC(op_e088_0), 0, 57480 }, /* LSR.L #,Dn */ +{ CPUFUNC(op_e090_0), 0, 57488 }, /* ROXR.L #,Dn */ +{ CPUFUNC(op_e098_0), 0, 57496 }, /* ROR.L #,Dn */ +{ CPUFUNC(op_e0a0_0), 0, 57504 }, /* ASR.L Dn,Dn */ +{ CPUFUNC(op_e0a8_0), 0, 57512 }, /* LSR.L Dn,Dn */ +{ CPUFUNC(op_e0b0_0), 0, 57520 }, /* ROXR.L Dn,Dn */ +{ CPUFUNC(op_e0b8_0), 0, 57528 }, /* ROR.L Dn,Dn */ +{ CPUFUNC(op_e0d0_0), 0, 57552 }, /* ASRW.W (An) */ +{ CPUFUNC(op_e0d8_0), 0, 57560 }, /* ASRW.W (An)+ */ +{ CPUFUNC(op_e0e0_0), 0, 57568 }, /* ASRW.W -(An) */ +{ CPUFUNC(op_e0e8_0), 0, 57576 }, /* ASRW.W (d16,An) */ +{ CPUFUNC(op_e0f0_3), 0, 57584 }, /* ASRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e0f8_0), 0, 57592 }, /* ASRW.W (xxx).W */ +{ CPUFUNC(op_e0f9_0), 0, 57593 }, /* ASRW.W (xxx).L */ +{ CPUFUNC(op_e100_0), 0, 57600 }, /* ASL.B #,Dn */ +{ CPUFUNC(op_e108_0), 0, 57608 }, /* LSL.B #,Dn */ +{ CPUFUNC(op_e110_0), 0, 57616 }, /* ROXL.B #,Dn */ +{ CPUFUNC(op_e118_0), 0, 57624 }, /* ROL.B #,Dn */ +{ CPUFUNC(op_e120_0), 0, 57632 }, /* ASL.B Dn,Dn */ +{ CPUFUNC(op_e128_0), 0, 57640 }, /* LSL.B Dn,Dn */ +{ CPUFUNC(op_e130_0), 0, 57648 }, /* ROXL.B Dn,Dn */ +{ CPUFUNC(op_e138_0), 0, 57656 }, /* ROL.B Dn,Dn */ +{ CPUFUNC(op_e140_0), 0, 57664 }, /* ASL.W #,Dn */ +{ CPUFUNC(op_e148_0), 0, 57672 }, /* LSL.W #,Dn */ +{ CPUFUNC(op_e150_0), 0, 57680 }, /* ROXL.W #,Dn */ +{ CPUFUNC(op_e158_0), 0, 57688 }, /* ROL.W #,Dn */ +{ CPUFUNC(op_e160_0), 0, 57696 }, /* ASL.W Dn,Dn */ +{ CPUFUNC(op_e168_0), 0, 57704 }, /* LSL.W Dn,Dn */ +{ CPUFUNC(op_e170_0), 0, 57712 }, /* ROXL.W Dn,Dn */ +{ CPUFUNC(op_e178_0), 0, 57720 }, /* ROL.W Dn,Dn */ +{ CPUFUNC(op_e180_0), 0, 57728 }, /* ASL.L #,Dn */ +{ CPUFUNC(op_e188_0), 0, 57736 }, /* LSL.L #,Dn */ +{ CPUFUNC(op_e190_0), 0, 57744 }, /* ROXL.L #,Dn */ +{ CPUFUNC(op_e198_0), 0, 57752 }, /* ROL.L #,Dn */ +{ CPUFUNC(op_e1a0_0), 0, 57760 }, /* ASL.L Dn,Dn */ +{ CPUFUNC(op_e1a8_0), 0, 57768 }, /* LSL.L Dn,Dn */ +{ CPUFUNC(op_e1b0_0), 0, 57776 }, /* ROXL.L Dn,Dn */ +{ CPUFUNC(op_e1b8_0), 0, 57784 }, /* ROL.L Dn,Dn */ +{ CPUFUNC(op_e1d0_0), 0, 57808 }, /* ASLW.W (An) */ +{ CPUFUNC(op_e1d8_0), 0, 57816 }, /* ASLW.W (An)+ */ +{ CPUFUNC(op_e1e0_0), 0, 57824 }, /* ASLW.W -(An) */ +{ CPUFUNC(op_e1e8_0), 0, 57832 }, /* ASLW.W (d16,An) */ +{ CPUFUNC(op_e1f0_3), 0, 57840 }, /* ASLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e1f8_0), 0, 57848 }, /* ASLW.W (xxx).W */ +{ CPUFUNC(op_e1f9_0), 0, 57849 }, /* ASLW.W (xxx).L */ +{ CPUFUNC(op_e2d0_0), 0, 58064 }, /* LSRW.W (An) */ +{ CPUFUNC(op_e2d8_0), 0, 58072 }, /* LSRW.W (An)+ */ +{ CPUFUNC(op_e2e0_0), 0, 58080 }, /* LSRW.W -(An) */ +{ CPUFUNC(op_e2e8_0), 0, 58088 }, /* LSRW.W (d16,An) */ +{ CPUFUNC(op_e2f0_3), 0, 58096 }, /* LSRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e2f8_0), 0, 58104 }, /* LSRW.W (xxx).W */ +{ CPUFUNC(op_e2f9_0), 0, 58105 }, /* LSRW.W (xxx).L */ +{ CPUFUNC(op_e3d0_0), 0, 58320 }, /* LSLW.W (An) */ +{ CPUFUNC(op_e3d8_0), 0, 58328 }, /* LSLW.W (An)+ */ +{ CPUFUNC(op_e3e0_0), 0, 58336 }, /* LSLW.W -(An) */ +{ CPUFUNC(op_e3e8_0), 0, 58344 }, /* LSLW.W (d16,An) */ +{ CPUFUNC(op_e3f0_3), 0, 58352 }, /* LSLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e3f8_0), 0, 58360 }, /* LSLW.W (xxx).W */ +{ CPUFUNC(op_e3f9_0), 0, 58361 }, /* LSLW.W (xxx).L */ +{ CPUFUNC(op_e4d0_0), 0, 58576 }, /* ROXRW.W (An) */ +{ CPUFUNC(op_e4d8_0), 0, 58584 }, /* ROXRW.W (An)+ */ +{ CPUFUNC(op_e4e0_0), 0, 58592 }, /* ROXRW.W -(An) */ +{ CPUFUNC(op_e4e8_0), 0, 58600 }, /* ROXRW.W (d16,An) */ +{ CPUFUNC(op_e4f0_3), 0, 58608 }, /* ROXRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e4f8_0), 0, 58616 }, /* ROXRW.W (xxx).W */ +{ CPUFUNC(op_e4f9_0), 0, 58617 }, /* ROXRW.W (xxx).L */ +{ CPUFUNC(op_e5d0_0), 0, 58832 }, /* ROXLW.W (An) */ +{ CPUFUNC(op_e5d8_0), 0, 58840 }, /* ROXLW.W (An)+ */ +{ CPUFUNC(op_e5e0_0), 0, 58848 }, /* ROXLW.W -(An) */ +{ CPUFUNC(op_e5e8_0), 0, 58856 }, /* ROXLW.W (d16,An) */ +{ CPUFUNC(op_e5f0_3), 0, 58864 }, /* ROXLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e5f8_0), 0, 58872 }, /* ROXLW.W (xxx).W */ +{ CPUFUNC(op_e5f9_0), 0, 58873 }, /* ROXLW.W (xxx).L */ +{ CPUFUNC(op_e6d0_0), 0, 59088 }, /* RORW.W (An) */ +{ CPUFUNC(op_e6d8_0), 0, 59096 }, /* RORW.W (An)+ */ +{ CPUFUNC(op_e6e0_0), 0, 59104 }, /* RORW.W -(An) */ +{ CPUFUNC(op_e6e8_0), 0, 59112 }, /* RORW.W (d16,An) */ +{ CPUFUNC(op_e6f0_3), 0, 59120 }, /* RORW.W (d8,An,Xn) */ +{ CPUFUNC(op_e6f8_0), 0, 59128 }, /* RORW.W (xxx).W */ +{ CPUFUNC(op_e6f9_0), 0, 59129 }, /* RORW.W (xxx).L */ +{ CPUFUNC(op_e7d0_0), 0, 59344 }, /* ROLW.W (An) */ +{ CPUFUNC(op_e7d8_0), 0, 59352 }, /* ROLW.W (An)+ */ +{ CPUFUNC(op_e7e0_0), 0, 59360 }, /* ROLW.W -(An) */ +{ CPUFUNC(op_e7e8_0), 0, 59368 }, /* ROLW.W (d16,An) */ +{ CPUFUNC(op_e7f0_3), 0, 59376 }, /* ROLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e7f8_0), 0, 59384 }, /* ROLW.W (xxx).W */ +{ CPUFUNC(op_e7f9_0), 0, 59385 }, /* ROLW.W (xxx).L */ +{ 0, 0, 0 }}; +struct cputbl CPUFUNC(op_smalltbl_4)[] = { +{ CPUFUNC(op_0_0), 0, 0 }, /* OR.B #.B,Dn */ +{ CPUFUNC(op_10_0), 0, 16 }, /* OR.B #.B,(An) */ +{ CPUFUNC(op_18_0), 0, 24 }, /* OR.B #.B,(An)+ */ +{ CPUFUNC(op_20_0), 0, 32 }, /* OR.B #.B,-(An) */ +{ CPUFUNC(op_28_0), 0, 40 }, /* OR.B #.B,(d16,An) */ +{ CPUFUNC(op_30_3), 0, 48 }, /* OR.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_38_0), 0, 56 }, /* OR.B #.B,(xxx).W */ +{ CPUFUNC(op_39_0), 0, 57 }, /* OR.B #.B,(xxx).L */ +{ CPUFUNC(op_3c_0), 0, 60 }, /* ORSR.B #.W */ +{ CPUFUNC(op_40_0), 0, 64 }, /* OR.W #.W,Dn */ +{ CPUFUNC(op_50_0), 0, 80 }, /* OR.W #.W,(An) */ +{ CPUFUNC(op_58_0), 0, 88 }, /* OR.W #.W,(An)+ */ +{ CPUFUNC(op_60_0), 0, 96 }, /* OR.W #.W,-(An) */ +{ CPUFUNC(op_68_0), 0, 104 }, /* OR.W #.W,(d16,An) */ +{ CPUFUNC(op_70_3), 0, 112 }, /* OR.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_78_0), 0, 120 }, /* OR.W #.W,(xxx).W */ +{ CPUFUNC(op_79_0), 0, 121 }, /* OR.W #.W,(xxx).L */ +{ CPUFUNC(op_7c_0), 0, 124 }, /* ORSR.W #.W */ +{ CPUFUNC(op_80_0), 0, 128 }, /* OR.L #.L,Dn */ +{ CPUFUNC(op_90_0), 0, 144 }, /* OR.L #.L,(An) */ +{ CPUFUNC(op_98_0), 0, 152 }, /* OR.L #.L,(An)+ */ +{ CPUFUNC(op_a0_0), 0, 160 }, /* OR.L #.L,-(An) */ +{ CPUFUNC(op_a8_0), 0, 168 }, /* OR.L #.L,(d16,An) */ +{ CPUFUNC(op_b0_3), 0, 176 }, /* OR.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_b8_0), 0, 184 }, /* OR.L #.L,(xxx).W */ +{ CPUFUNC(op_b9_0), 0, 185 }, /* OR.L #.L,(xxx).L */ +{ CPUFUNC(op_100_0), 0, 256 }, /* BTST.L Dn,Dn */ +{ CPUFUNC_FF(op_108_0), 0, 264 }, /* MVPMR.W (d16,An),Dn */ +{ CPUFUNC(op_110_0), 0, 272 }, /* BTST.B Dn,(An) */ +{ CPUFUNC(op_118_0), 0, 280 }, /* BTST.B Dn,(An)+ */ +{ CPUFUNC(op_120_0), 0, 288 }, /* BTST.B Dn,-(An) */ +{ CPUFUNC(op_128_0), 0, 296 }, /* BTST.B Dn,(d16,An) */ +{ CPUFUNC(op_130_3), 0, 304 }, /* BTST.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_138_0), 0, 312 }, /* BTST.B Dn,(xxx).W */ +{ CPUFUNC(op_139_0), 0, 313 }, /* BTST.B Dn,(xxx).L */ +{ CPUFUNC(op_13a_0), 0, 314 }, /* BTST.B Dn,(d16,PC) */ +{ CPUFUNC(op_13b_3), 0, 315 }, /* BTST.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_13c_0), 0, 316 }, /* BTST.B Dn,#.B */ +{ CPUFUNC(op_140_0), 0, 320 }, /* BCHG.L Dn,Dn */ +{ CPUFUNC_FF(op_148_0), 0, 328 }, /* MVPMR.L (d16,An),Dn */ +{ CPUFUNC(op_150_0), 0, 336 }, /* BCHG.B Dn,(An) */ +{ CPUFUNC(op_158_0), 0, 344 }, /* BCHG.B Dn,(An)+ */ +{ CPUFUNC(op_160_0), 0, 352 }, /* BCHG.B Dn,-(An) */ +{ CPUFUNC(op_168_0), 0, 360 }, /* BCHG.B Dn,(d16,An) */ +{ CPUFUNC(op_170_3), 0, 368 }, /* BCHG.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_178_0), 0, 376 }, /* BCHG.B Dn,(xxx).W */ +{ CPUFUNC(op_179_0), 0, 377 }, /* BCHG.B Dn,(xxx).L */ +{ CPUFUNC(op_17a_0), 0, 378 }, /* BCHG.B Dn,(d16,PC) */ +{ CPUFUNC(op_17b_3), 0, 379 }, /* BCHG.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_180_0), 0, 384 }, /* BCLR.L Dn,Dn */ +{ CPUFUNC_FF(op_188_0), 0, 392 }, /* MVPRM.W Dn,(d16,An) */ +{ CPUFUNC(op_190_0), 0, 400 }, /* BCLR.B Dn,(An) */ +{ CPUFUNC(op_198_0), 0, 408 }, /* BCLR.B Dn,(An)+ */ +{ CPUFUNC(op_1a0_0), 0, 416 }, /* BCLR.B Dn,-(An) */ +{ CPUFUNC(op_1a8_0), 0, 424 }, /* BCLR.B Dn,(d16,An) */ +{ CPUFUNC(op_1b0_3), 0, 432 }, /* BCLR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1b8_0), 0, 440 }, /* BCLR.B Dn,(xxx).W */ +{ CPUFUNC(op_1b9_0), 0, 441 }, /* BCLR.B Dn,(xxx).L */ +{ CPUFUNC(op_1ba_0), 0, 442 }, /* BCLR.B Dn,(d16,PC) */ +{ CPUFUNC(op_1bb_3), 0, 443 }, /* BCLR.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_1c0_0), 0, 448 }, /* BSET.L Dn,Dn */ +{ CPUFUNC_FF(op_1c8_0), 0, 456 }, /* MVPRM.L Dn,(d16,An) */ +{ CPUFUNC(op_1d0_0), 0, 464 }, /* BSET.B Dn,(An) */ +{ CPUFUNC(op_1d8_0), 0, 472 }, /* BSET.B Dn,(An)+ */ +{ CPUFUNC(op_1e0_0), 0, 480 }, /* BSET.B Dn,-(An) */ +{ CPUFUNC(op_1e8_0), 0, 488 }, /* BSET.B Dn,(d16,An) */ +{ CPUFUNC(op_1f0_3), 0, 496 }, /* BSET.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1f8_0), 0, 504 }, /* BSET.B Dn,(xxx).W */ +{ CPUFUNC(op_1f9_0), 0, 505 }, /* BSET.B Dn,(xxx).L */ +{ CPUFUNC(op_1fa_0), 0, 506 }, /* BSET.B Dn,(d16,PC) */ +{ CPUFUNC(op_1fb_3), 0, 507 }, /* BSET.B Dn,(d8,PC,Xn) */ +{ CPUFUNC(op_200_0), 0, 512 }, /* AND.B #.B,Dn */ +{ CPUFUNC(op_210_0), 0, 528 }, /* AND.B #.B,(An) */ +{ CPUFUNC(op_218_0), 0, 536 }, /* AND.B #.B,(An)+ */ +{ CPUFUNC(op_220_0), 0, 544 }, /* AND.B #.B,-(An) */ +{ CPUFUNC(op_228_0), 0, 552 }, /* AND.B #.B,(d16,An) */ +{ CPUFUNC(op_230_3), 0, 560 }, /* AND.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_238_0), 0, 568 }, /* AND.B #.B,(xxx).W */ +{ CPUFUNC(op_239_0), 0, 569 }, /* AND.B #.B,(xxx).L */ +{ CPUFUNC(op_23c_0), 0, 572 }, /* ANDSR.B #.W */ +{ CPUFUNC(op_240_0), 0, 576 }, /* AND.W #.W,Dn */ +{ CPUFUNC(op_250_0), 0, 592 }, /* AND.W #.W,(An) */ +{ CPUFUNC(op_258_0), 0, 600 }, /* AND.W #.W,(An)+ */ +{ CPUFUNC(op_260_0), 0, 608 }, /* AND.W #.W,-(An) */ +{ CPUFUNC(op_268_0), 0, 616 }, /* AND.W #.W,(d16,An) */ +{ CPUFUNC(op_270_3), 0, 624 }, /* AND.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_278_0), 0, 632 }, /* AND.W #.W,(xxx).W */ +{ CPUFUNC(op_279_0), 0, 633 }, /* AND.W #.W,(xxx).L */ +{ CPUFUNC(op_27c_0), 0, 636 }, /* ANDSR.W #.W */ +{ CPUFUNC(op_280_0), 0, 640 }, /* AND.L #.L,Dn */ +{ CPUFUNC(op_290_0), 0, 656 }, /* AND.L #.L,(An) */ +{ CPUFUNC(op_298_0), 0, 664 }, /* AND.L #.L,(An)+ */ +{ CPUFUNC(op_2a0_0), 0, 672 }, /* AND.L #.L,-(An) */ +{ CPUFUNC(op_2a8_0), 0, 680 }, /* AND.L #.L,(d16,An) */ +{ CPUFUNC(op_2b0_3), 0, 688 }, /* AND.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_2b8_0), 0, 696 }, /* AND.L #.L,(xxx).W */ +{ CPUFUNC(op_2b9_0), 0, 697 }, /* AND.L #.L,(xxx).L */ +{ CPUFUNC(op_400_0), 0, 1024 }, /* SUB.B #.B,Dn */ +{ CPUFUNC(op_410_0), 0, 1040 }, /* SUB.B #.B,(An) */ +{ CPUFUNC(op_418_0), 0, 1048 }, /* SUB.B #.B,(An)+ */ +{ CPUFUNC(op_420_0), 0, 1056 }, /* SUB.B #.B,-(An) */ +{ CPUFUNC(op_428_0), 0, 1064 }, /* SUB.B #.B,(d16,An) */ +{ CPUFUNC(op_430_3), 0, 1072 }, /* SUB.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_438_0), 0, 1080 }, /* SUB.B #.B,(xxx).W */ +{ CPUFUNC(op_439_0), 0, 1081 }, /* SUB.B #.B,(xxx).L */ +{ CPUFUNC(op_440_0), 0, 1088 }, /* SUB.W #.W,Dn */ +{ CPUFUNC(op_450_0), 0, 1104 }, /* SUB.W #.W,(An) */ +{ CPUFUNC(op_458_0), 0, 1112 }, /* SUB.W #.W,(An)+ */ +{ CPUFUNC(op_460_0), 0, 1120 }, /* SUB.W #.W,-(An) */ +{ CPUFUNC(op_468_0), 0, 1128 }, /* SUB.W #.W,(d16,An) */ +{ CPUFUNC(op_470_3), 0, 1136 }, /* SUB.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_478_0), 0, 1144 }, /* SUB.W #.W,(xxx).W */ +{ CPUFUNC(op_479_0), 0, 1145 }, /* SUB.W #.W,(xxx).L */ +{ CPUFUNC(op_480_0), 0, 1152 }, /* SUB.L #.L,Dn */ +{ CPUFUNC(op_490_0), 0, 1168 }, /* SUB.L #.L,(An) */ +{ CPUFUNC(op_498_0), 0, 1176 }, /* SUB.L #.L,(An)+ */ +{ CPUFUNC(op_4a0_0), 0, 1184 }, /* SUB.L #.L,-(An) */ +{ CPUFUNC(op_4a8_0), 0, 1192 }, /* SUB.L #.L,(d16,An) */ +{ CPUFUNC(op_4b0_3), 0, 1200 }, /* SUB.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_4b8_0), 0, 1208 }, /* SUB.L #.L,(xxx).W */ +{ CPUFUNC(op_4b9_0), 0, 1209 }, /* SUB.L #.L,(xxx).L */ +{ CPUFUNC(op_600_0), 0, 1536 }, /* ADD.B #.B,Dn */ +{ CPUFUNC(op_610_0), 0, 1552 }, /* ADD.B #.B,(An) */ +{ CPUFUNC(op_618_0), 0, 1560 }, /* ADD.B #.B,(An)+ */ +{ CPUFUNC(op_620_0), 0, 1568 }, /* ADD.B #.B,-(An) */ +{ CPUFUNC(op_628_0), 0, 1576 }, /* ADD.B #.B,(d16,An) */ +{ CPUFUNC(op_630_3), 0, 1584 }, /* ADD.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_638_0), 0, 1592 }, /* ADD.B #.B,(xxx).W */ +{ CPUFUNC(op_639_0), 0, 1593 }, /* ADD.B #.B,(xxx).L */ +{ CPUFUNC(op_640_0), 0, 1600 }, /* ADD.W #.W,Dn */ +{ CPUFUNC(op_650_0), 0, 1616 }, /* ADD.W #.W,(An) */ +{ CPUFUNC(op_658_0), 0, 1624 }, /* ADD.W #.W,(An)+ */ +{ CPUFUNC(op_660_0), 0, 1632 }, /* ADD.W #.W,-(An) */ +{ CPUFUNC(op_668_0), 0, 1640 }, /* ADD.W #.W,(d16,An) */ +{ CPUFUNC(op_670_3), 0, 1648 }, /* ADD.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_678_0), 0, 1656 }, /* ADD.W #.W,(xxx).W */ +{ CPUFUNC(op_679_0), 0, 1657 }, /* ADD.W #.W,(xxx).L */ +{ CPUFUNC(op_680_0), 0, 1664 }, /* ADD.L #.L,Dn */ +{ CPUFUNC(op_690_0), 0, 1680 }, /* ADD.L #.L,(An) */ +{ CPUFUNC(op_698_0), 0, 1688 }, /* ADD.L #.L,(An)+ */ +{ CPUFUNC(op_6a0_0), 0, 1696 }, /* ADD.L #.L,-(An) */ +{ CPUFUNC(op_6a8_0), 0, 1704 }, /* ADD.L #.L,(d16,An) */ +{ CPUFUNC(op_6b0_3), 0, 1712 }, /* ADD.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_6b8_0), 0, 1720 }, /* ADD.L #.L,(xxx).W */ +{ CPUFUNC(op_6b9_0), 0, 1721 }, /* ADD.L #.L,(xxx).L */ +{ CPUFUNC(op_800_0), 0, 2048 }, /* BTST.L #.W,Dn */ +{ CPUFUNC(op_810_0), 0, 2064 }, /* BTST.B #.W,(An) */ +{ CPUFUNC(op_818_0), 0, 2072 }, /* BTST.B #.W,(An)+ */ +{ CPUFUNC(op_820_0), 0, 2080 }, /* BTST.B #.W,-(An) */ +{ CPUFUNC(op_828_0), 0, 2088 }, /* BTST.B #.W,(d16,An) */ +{ CPUFUNC(op_830_3), 0, 2096 }, /* BTST.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_838_0), 0, 2104 }, /* BTST.B #.W,(xxx).W */ +{ CPUFUNC(op_839_0), 0, 2105 }, /* BTST.B #.W,(xxx).L */ +{ CPUFUNC(op_83a_0), 0, 2106 }, /* BTST.B #.W,(d16,PC) */ +{ CPUFUNC(op_83b_3), 0, 2107 }, /* BTST.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_83c_0), 0, 2108 }, /* BTST.B #.W,#.B */ +{ CPUFUNC(op_840_0), 0, 2112 }, /* BCHG.L #.W,Dn */ +{ CPUFUNC(op_850_0), 0, 2128 }, /* BCHG.B #.W,(An) */ +{ CPUFUNC(op_858_0), 0, 2136 }, /* BCHG.B #.W,(An)+ */ +{ CPUFUNC(op_860_0), 0, 2144 }, /* BCHG.B #.W,-(An) */ +{ CPUFUNC(op_868_0), 0, 2152 }, /* BCHG.B #.W,(d16,An) */ +{ CPUFUNC(op_870_3), 0, 2160 }, /* BCHG.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_878_0), 0, 2168 }, /* BCHG.B #.W,(xxx).W */ +{ CPUFUNC(op_879_0), 0, 2169 }, /* BCHG.B #.W,(xxx).L */ +{ CPUFUNC(op_87a_0), 0, 2170 }, /* BCHG.B #.W,(d16,PC) */ +{ CPUFUNC(op_87b_3), 0, 2171 }, /* BCHG.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_880_0), 0, 2176 }, /* BCLR.L #.W,Dn */ +{ CPUFUNC(op_890_0), 0, 2192 }, /* BCLR.B #.W,(An) */ +{ CPUFUNC(op_898_0), 0, 2200 }, /* BCLR.B #.W,(An)+ */ +{ CPUFUNC(op_8a0_0), 0, 2208 }, /* BCLR.B #.W,-(An) */ +{ CPUFUNC(op_8a8_0), 0, 2216 }, /* BCLR.B #.W,(d16,An) */ +{ CPUFUNC(op_8b0_3), 0, 2224 }, /* BCLR.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_8b8_0), 0, 2232 }, /* BCLR.B #.W,(xxx).W */ +{ CPUFUNC(op_8b9_0), 0, 2233 }, /* BCLR.B #.W,(xxx).L */ +{ CPUFUNC(op_8ba_0), 0, 2234 }, /* BCLR.B #.W,(d16,PC) */ +{ CPUFUNC(op_8bb_3), 0, 2235 }, /* BCLR.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_8c0_0), 0, 2240 }, /* BSET.L #.W,Dn */ +{ CPUFUNC(op_8d0_0), 0, 2256 }, /* BSET.B #.W,(An) */ +{ CPUFUNC(op_8d8_0), 0, 2264 }, /* BSET.B #.W,(An)+ */ +{ CPUFUNC(op_8e0_0), 0, 2272 }, /* BSET.B #.W,-(An) */ +{ CPUFUNC(op_8e8_0), 0, 2280 }, /* BSET.B #.W,(d16,An) */ +{ CPUFUNC(op_8f0_3), 0, 2288 }, /* BSET.B #.W,(d8,An,Xn) */ +{ CPUFUNC(op_8f8_0), 0, 2296 }, /* BSET.B #.W,(xxx).W */ +{ CPUFUNC(op_8f9_0), 0, 2297 }, /* BSET.B #.W,(xxx).L */ +{ CPUFUNC(op_8fa_0), 0, 2298 }, /* BSET.B #.W,(d16,PC) */ +{ CPUFUNC(op_8fb_3), 0, 2299 }, /* BSET.B #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_a00_0), 0, 2560 }, /* EOR.B #.B,Dn */ +{ CPUFUNC(op_a10_0), 0, 2576 }, /* EOR.B #.B,(An) */ +{ CPUFUNC(op_a18_0), 0, 2584 }, /* EOR.B #.B,(An)+ */ +{ CPUFUNC(op_a20_0), 0, 2592 }, /* EOR.B #.B,-(An) */ +{ CPUFUNC(op_a28_0), 0, 2600 }, /* EOR.B #.B,(d16,An) */ +{ CPUFUNC(op_a30_3), 0, 2608 }, /* EOR.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_a38_0), 0, 2616 }, /* EOR.B #.B,(xxx).W */ +{ CPUFUNC(op_a39_0), 0, 2617 }, /* EOR.B #.B,(xxx).L */ +{ CPUFUNC(op_a3c_0), 0, 2620 }, /* EORSR.B #.W */ +{ CPUFUNC(op_a40_0), 0, 2624 }, /* EOR.W #.W,Dn */ +{ CPUFUNC(op_a50_0), 0, 2640 }, /* EOR.W #.W,(An) */ +{ CPUFUNC(op_a58_0), 0, 2648 }, /* EOR.W #.W,(An)+ */ +{ CPUFUNC(op_a60_0), 0, 2656 }, /* EOR.W #.W,-(An) */ +{ CPUFUNC(op_a68_0), 0, 2664 }, /* EOR.W #.W,(d16,An) */ +{ CPUFUNC(op_a70_3), 0, 2672 }, /* EOR.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_a78_0), 0, 2680 }, /* EOR.W #.W,(xxx).W */ +{ CPUFUNC(op_a79_0), 0, 2681 }, /* EOR.W #.W,(xxx).L */ +{ CPUFUNC(op_a7c_0), 0, 2684 }, /* EORSR.W #.W */ +{ CPUFUNC(op_a80_0), 0, 2688 }, /* EOR.L #.L,Dn */ +{ CPUFUNC(op_a90_0), 0, 2704 }, /* EOR.L #.L,(An) */ +{ CPUFUNC(op_a98_0), 0, 2712 }, /* EOR.L #.L,(An)+ */ +{ CPUFUNC(op_aa0_0), 0, 2720 }, /* EOR.L #.L,-(An) */ +{ CPUFUNC(op_aa8_0), 0, 2728 }, /* EOR.L #.L,(d16,An) */ +{ CPUFUNC(op_ab0_3), 0, 2736 }, /* EOR.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_ab8_0), 0, 2744 }, /* EOR.L #.L,(xxx).W */ +{ CPUFUNC(op_ab9_0), 0, 2745 }, /* EOR.L #.L,(xxx).L */ +{ CPUFUNC(op_c00_0), 0, 3072 }, /* CMP.B #.B,Dn */ +{ CPUFUNC(op_c10_0), 0, 3088 }, /* CMP.B #.B,(An) */ +{ CPUFUNC(op_c18_0), 0, 3096 }, /* CMP.B #.B,(An)+ */ +{ CPUFUNC(op_c20_0), 0, 3104 }, /* CMP.B #.B,-(An) */ +{ CPUFUNC(op_c28_0), 0, 3112 }, /* CMP.B #.B,(d16,An) */ +{ CPUFUNC(op_c30_3), 0, 3120 }, /* CMP.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_c38_0), 0, 3128 }, /* CMP.B #.B,(xxx).W */ +{ CPUFUNC(op_c39_0), 0, 3129 }, /* CMP.B #.B,(xxx).L */ +{ CPUFUNC(op_c3a_0), 0, 3130 }, /* CMP.B #.B,(d16,PC) */ +{ CPUFUNC(op_c3b_3), 0, 3131 }, /* CMP.B #.B,(d8,PC,Xn) */ +{ CPUFUNC(op_c40_0), 0, 3136 }, /* CMP.W #.W,Dn */ +{ CPUFUNC(op_c50_0), 0, 3152 }, /* CMP.W #.W,(An) */ +{ CPUFUNC(op_c58_0), 0, 3160 }, /* CMP.W #.W,(An)+ */ +{ CPUFUNC(op_c60_0), 0, 3168 }, /* CMP.W #.W,-(An) */ +{ CPUFUNC(op_c68_0), 0, 3176 }, /* CMP.W #.W,(d16,An) */ +{ CPUFUNC(op_c70_3), 0, 3184 }, /* CMP.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_c78_0), 0, 3192 }, /* CMP.W #.W,(xxx).W */ +{ CPUFUNC(op_c79_0), 0, 3193 }, /* CMP.W #.W,(xxx).L */ +{ CPUFUNC(op_c7a_0), 0, 3194 }, /* CMP.W #.W,(d16,PC) */ +{ CPUFUNC(op_c7b_3), 0, 3195 }, /* CMP.W #.W,(d8,PC,Xn) */ +{ CPUFUNC(op_c80_0), 0, 3200 }, /* CMP.L #.L,Dn */ +{ CPUFUNC(op_c90_0), 0, 3216 }, /* CMP.L #.L,(An) */ +{ CPUFUNC(op_c98_0), 0, 3224 }, /* CMP.L #.L,(An)+ */ +{ CPUFUNC(op_ca0_0), 0, 3232 }, /* CMP.L #.L,-(An) */ +{ CPUFUNC(op_ca8_0), 0, 3240 }, /* CMP.L #.L,(d16,An) */ +{ CPUFUNC(op_cb0_3), 0, 3248 }, /* CMP.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_cb8_0), 0, 3256 }, /* CMP.L #.L,(xxx).W */ +{ CPUFUNC(op_cb9_0), 0, 3257 }, /* CMP.L #.L,(xxx).L */ +{ CPUFUNC(op_cba_0), 0, 3258 }, /* CMP.L #.L,(d16,PC) */ +{ CPUFUNC(op_cbb_3), 0, 3259 }, /* CMP.L #.L,(d8,PC,Xn) */ +{ CPUFUNC(op_1000_0), 0, 4096 }, /* MOVE.B Dn,Dn */ +{ CPUFUNC(op_1010_0), 0, 4112 }, /* MOVE.B (An),Dn */ +{ CPUFUNC(op_1018_0), 0, 4120 }, /* MOVE.B (An)+,Dn */ +{ CPUFUNC(op_1020_0), 0, 4128 }, /* MOVE.B -(An),Dn */ +{ CPUFUNC(op_1028_0), 0, 4136 }, /* MOVE.B (d16,An),Dn */ +{ CPUFUNC(op_1030_3), 0, 4144 }, /* MOVE.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_1038_0), 0, 4152 }, /* MOVE.B (xxx).W,Dn */ +{ CPUFUNC(op_1039_0), 0, 4153 }, /* MOVE.B (xxx).L,Dn */ +{ CPUFUNC(op_103a_0), 0, 4154 }, /* MOVE.B (d16,PC),Dn */ +{ CPUFUNC(op_103b_3), 0, 4155 }, /* MOVE.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_103c_0), 0, 4156 }, /* MOVE.B #.B,Dn */ +{ CPUFUNC(op_1080_0), 0, 4224 }, /* MOVE.B Dn,(An) */ +{ CPUFUNC(op_1090_0), 0, 4240 }, /* MOVE.B (An),(An) */ +{ CPUFUNC(op_1098_0), 0, 4248 }, /* MOVE.B (An)+,(An) */ +{ CPUFUNC(op_10a0_0), 0, 4256 }, /* MOVE.B -(An),(An) */ +{ CPUFUNC(op_10a8_0), 0, 4264 }, /* MOVE.B (d16,An),(An) */ +{ CPUFUNC(op_10b0_3), 0, 4272 }, /* MOVE.B (d8,An,Xn),(An) */ +{ CPUFUNC(op_10b8_0), 0, 4280 }, /* MOVE.B (xxx).W,(An) */ +{ CPUFUNC(op_10b9_0), 0, 4281 }, /* MOVE.B (xxx).L,(An) */ +{ CPUFUNC(op_10ba_0), 0, 4282 }, /* MOVE.B (d16,PC),(An) */ +{ CPUFUNC(op_10bb_3), 0, 4283 }, /* MOVE.B (d8,PC,Xn),(An) */ +{ CPUFUNC(op_10bc_0), 0, 4284 }, /* MOVE.B #.B,(An) */ +{ CPUFUNC(op_10c0_0), 0, 4288 }, /* MOVE.B Dn,(An)+ */ +{ CPUFUNC(op_10d0_0), 0, 4304 }, /* MOVE.B (An),(An)+ */ +{ CPUFUNC(op_10d8_0), 0, 4312 }, /* MOVE.B (An)+,(An)+ */ +{ CPUFUNC(op_10e0_0), 0, 4320 }, /* MOVE.B -(An),(An)+ */ +{ CPUFUNC(op_10e8_0), 0, 4328 }, /* MOVE.B (d16,An),(An)+ */ +{ CPUFUNC(op_10f0_3), 0, 4336 }, /* MOVE.B (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_10f8_0), 0, 4344 }, /* MOVE.B (xxx).W,(An)+ */ +{ CPUFUNC(op_10f9_0), 0, 4345 }, /* MOVE.B (xxx).L,(An)+ */ +{ CPUFUNC(op_10fa_0), 0, 4346 }, /* MOVE.B (d16,PC),(An)+ */ +{ CPUFUNC(op_10fb_3), 0, 4347 }, /* MOVE.B (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_10fc_0), 0, 4348 }, /* MOVE.B #.B,(An)+ */ +{ CPUFUNC(op_1100_0), 0, 4352 }, /* MOVE.B Dn,-(An) */ +{ CPUFUNC(op_1110_0), 0, 4368 }, /* MOVE.B (An),-(An) */ +{ CPUFUNC(op_1118_0), 0, 4376 }, /* MOVE.B (An)+,-(An) */ +{ CPUFUNC(op_1120_0), 0, 4384 }, /* MOVE.B -(An),-(An) */ +{ CPUFUNC(op_1128_0), 0, 4392 }, /* MOVE.B (d16,An),-(An) */ +{ CPUFUNC(op_1130_3), 0, 4400 }, /* MOVE.B (d8,An,Xn),-(An) */ +{ CPUFUNC(op_1138_0), 0, 4408 }, /* MOVE.B (xxx).W,-(An) */ +{ CPUFUNC(op_1139_0), 0, 4409 }, /* MOVE.B (xxx).L,-(An) */ +{ CPUFUNC(op_113a_0), 0, 4410 }, /* MOVE.B (d16,PC),-(An) */ +{ CPUFUNC(op_113b_3), 0, 4411 }, /* MOVE.B (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_113c_0), 0, 4412 }, /* MOVE.B #.B,-(An) */ +{ CPUFUNC(op_1140_0), 0, 4416 }, /* MOVE.B Dn,(d16,An) */ +{ CPUFUNC(op_1150_0), 0, 4432 }, /* MOVE.B (An),(d16,An) */ +{ CPUFUNC(op_1158_0), 0, 4440 }, /* MOVE.B (An)+,(d16,An) */ +{ CPUFUNC(op_1160_0), 0, 4448 }, /* MOVE.B -(An),(d16,An) */ +{ CPUFUNC(op_1168_0), 0, 4456 }, /* MOVE.B (d16,An),(d16,An) */ +{ CPUFUNC(op_1170_3), 0, 4464 }, /* MOVE.B (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_1178_0), 0, 4472 }, /* MOVE.B (xxx).W,(d16,An) */ +{ CPUFUNC(op_1179_0), 0, 4473 }, /* MOVE.B (xxx).L,(d16,An) */ +{ CPUFUNC(op_117a_0), 0, 4474 }, /* MOVE.B (d16,PC),(d16,An) */ +{ CPUFUNC(op_117b_3), 0, 4475 }, /* MOVE.B (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_117c_0), 0, 4476 }, /* MOVE.B #.B,(d16,An) */ +{ CPUFUNC(op_1180_3), 0, 4480 }, /* MOVE.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_1190_3), 0, 4496 }, /* MOVE.B (An),(d8,An,Xn) */ +{ CPUFUNC(op_1198_3), 0, 4504 }, /* MOVE.B (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_11a0_3), 0, 4512 }, /* MOVE.B -(An),(d8,An,Xn) */ +{ CPUFUNC(op_11a8_3), 0, 4520 }, /* MOVE.B (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_11b0_3), 0, 4528 }, /* MOVE.B (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_11b8_3), 0, 4536 }, /* MOVE.B (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_11b9_3), 0, 4537 }, /* MOVE.B (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_11ba_3), 0, 4538 }, /* MOVE.B (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_11bb_3), 0, 4539 }, /* MOVE.B (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_11bc_3), 0, 4540 }, /* MOVE.B #.B,(d8,An,Xn) */ +{ CPUFUNC(op_11c0_0), 0, 4544 }, /* MOVE.B Dn,(xxx).W */ +{ CPUFUNC(op_11d0_0), 0, 4560 }, /* MOVE.B (An),(xxx).W */ +{ CPUFUNC(op_11d8_0), 0, 4568 }, /* MOVE.B (An)+,(xxx).W */ +{ CPUFUNC(op_11e0_0), 0, 4576 }, /* MOVE.B -(An),(xxx).W */ +{ CPUFUNC(op_11e8_0), 0, 4584 }, /* MOVE.B (d16,An),(xxx).W */ +{ CPUFUNC(op_11f0_3), 0, 4592 }, /* MOVE.B (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_11f8_0), 0, 4600 }, /* MOVE.B (xxx).W,(xxx).W */ +{ CPUFUNC(op_11f9_0), 0, 4601 }, /* MOVE.B (xxx).L,(xxx).W */ +{ CPUFUNC(op_11fa_0), 0, 4602 }, /* MOVE.B (d16,PC),(xxx).W */ +{ CPUFUNC(op_11fb_3), 0, 4603 }, /* MOVE.B (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_11fc_0), 0, 4604 }, /* MOVE.B #.B,(xxx).W */ +{ CPUFUNC(op_13c0_0), 0, 5056 }, /* MOVE.B Dn,(xxx).L */ +{ CPUFUNC(op_13d0_0), 0, 5072 }, /* MOVE.B (An),(xxx).L */ +{ CPUFUNC(op_13d8_0), 0, 5080 }, /* MOVE.B (An)+,(xxx).L */ +{ CPUFUNC(op_13e0_0), 0, 5088 }, /* MOVE.B -(An),(xxx).L */ +{ CPUFUNC(op_13e8_0), 0, 5096 }, /* MOVE.B (d16,An),(xxx).L */ +{ CPUFUNC(op_13f0_3), 0, 5104 }, /* MOVE.B (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_13f8_0), 0, 5112 }, /* MOVE.B (xxx).W,(xxx).L */ +{ CPUFUNC(op_13f9_0), 0, 5113 }, /* MOVE.B (xxx).L,(xxx).L */ +{ CPUFUNC(op_13fa_0), 0, 5114 }, /* MOVE.B (d16,PC),(xxx).L */ +{ CPUFUNC(op_13fb_3), 0, 5115 }, /* MOVE.B (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_13fc_0), 0, 5116 }, /* MOVE.B #.B,(xxx).L */ +{ CPUFUNC(op_2000_0), 0, 8192 }, /* MOVE.L Dn,Dn */ +{ CPUFUNC(op_2008_0), 0, 8200 }, /* MOVE.L An,Dn */ +{ CPUFUNC(op_2010_0), 0, 8208 }, /* MOVE.L (An),Dn */ +{ CPUFUNC(op_2018_0), 0, 8216 }, /* MOVE.L (An)+,Dn */ +{ CPUFUNC(op_2020_0), 0, 8224 }, /* MOVE.L -(An),Dn */ +{ CPUFUNC(op_2028_0), 0, 8232 }, /* MOVE.L (d16,An),Dn */ +{ CPUFUNC(op_2030_3), 0, 8240 }, /* MOVE.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_2038_0), 0, 8248 }, /* MOVE.L (xxx).W,Dn */ +{ CPUFUNC(op_2039_0), 0, 8249 }, /* MOVE.L (xxx).L,Dn */ +{ CPUFUNC(op_203a_0), 0, 8250 }, /* MOVE.L (d16,PC),Dn */ +{ CPUFUNC(op_203b_3), 0, 8251 }, /* MOVE.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_203c_0), 0, 8252 }, /* MOVE.L #.L,Dn */ +{ CPUFUNC_FF(op_2040_0), 0, 8256 }, /* MOVEA.L Dn,An */ +{ CPUFUNC_FF(op_2048_0), 0, 8264 }, /* MOVEA.L An,An */ +{ CPUFUNC_FF(op_2050_0), 0, 8272 }, /* MOVEA.L (An),An */ +{ CPUFUNC_FF(op_2058_0), 0, 8280 }, /* MOVEA.L (An)+,An */ +{ CPUFUNC_FF(op_2060_0), 0, 8288 }, /* MOVEA.L -(An),An */ +{ CPUFUNC_FF(op_2068_0), 0, 8296 }, /* MOVEA.L (d16,An),An */ +{ CPUFUNC_FF(op_2070_3), 0, 8304 }, /* MOVEA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_2078_0), 0, 8312 }, /* MOVEA.L (xxx).W,An */ +{ CPUFUNC_FF(op_2079_0), 0, 8313 }, /* MOVEA.L (xxx).L,An */ +{ CPUFUNC_FF(op_207a_0), 0, 8314 }, /* MOVEA.L (d16,PC),An */ +{ CPUFUNC_FF(op_207b_3), 0, 8315 }, /* MOVEA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_207c_0), 0, 8316 }, /* MOVEA.L #.L,An */ +{ CPUFUNC(op_2080_0), 0, 8320 }, /* MOVE.L Dn,(An) */ +{ CPUFUNC(op_2088_0), 0, 8328 }, /* MOVE.L An,(An) */ +{ CPUFUNC(op_2090_0), 0, 8336 }, /* MOVE.L (An),(An) */ +{ CPUFUNC(op_2098_0), 0, 8344 }, /* MOVE.L (An)+,(An) */ +{ CPUFUNC(op_20a0_0), 0, 8352 }, /* MOVE.L -(An),(An) */ +{ CPUFUNC(op_20a8_0), 0, 8360 }, /* MOVE.L (d16,An),(An) */ +{ CPUFUNC(op_20b0_3), 0, 8368 }, /* MOVE.L (d8,An,Xn),(An) */ +{ CPUFUNC(op_20b8_0), 0, 8376 }, /* MOVE.L (xxx).W,(An) */ +{ CPUFUNC(op_20b9_0), 0, 8377 }, /* MOVE.L (xxx).L,(An) */ +{ CPUFUNC(op_20ba_0), 0, 8378 }, /* MOVE.L (d16,PC),(An) */ +{ CPUFUNC(op_20bb_3), 0, 8379 }, /* MOVE.L (d8,PC,Xn),(An) */ +{ CPUFUNC(op_20bc_0), 0, 8380 }, /* MOVE.L #.L,(An) */ +{ CPUFUNC(op_20c0_0), 0, 8384 }, /* MOVE.L Dn,(An)+ */ +{ CPUFUNC(op_20c8_0), 0, 8392 }, /* MOVE.L An,(An)+ */ +{ CPUFUNC(op_20d0_0), 0, 8400 }, /* MOVE.L (An),(An)+ */ +{ CPUFUNC(op_20d8_0), 0, 8408 }, /* MOVE.L (An)+,(An)+ */ +{ CPUFUNC(op_20e0_0), 0, 8416 }, /* MOVE.L -(An),(An)+ */ +{ CPUFUNC(op_20e8_0), 0, 8424 }, /* MOVE.L (d16,An),(An)+ */ +{ CPUFUNC(op_20f0_3), 0, 8432 }, /* MOVE.L (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_20f8_0), 0, 8440 }, /* MOVE.L (xxx).W,(An)+ */ +{ CPUFUNC(op_20f9_0), 0, 8441 }, /* MOVE.L (xxx).L,(An)+ */ +{ CPUFUNC(op_20fa_0), 0, 8442 }, /* MOVE.L (d16,PC),(An)+ */ +{ CPUFUNC(op_20fb_3), 0, 8443 }, /* MOVE.L (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_20fc_0), 0, 8444 }, /* MOVE.L #.L,(An)+ */ +{ CPUFUNC(op_2100_0), 0, 8448 }, /* MOVE.L Dn,-(An) */ +{ CPUFUNC(op_2108_0), 0, 8456 }, /* MOVE.L An,-(An) */ +{ CPUFUNC(op_2110_0), 0, 8464 }, /* MOVE.L (An),-(An) */ +{ CPUFUNC(op_2118_0), 0, 8472 }, /* MOVE.L (An)+,-(An) */ +{ CPUFUNC(op_2120_0), 0, 8480 }, /* MOVE.L -(An),-(An) */ +{ CPUFUNC(op_2128_0), 0, 8488 }, /* MOVE.L (d16,An),-(An) */ +{ CPUFUNC(op_2130_3), 0, 8496 }, /* MOVE.L (d8,An,Xn),-(An) */ +{ CPUFUNC(op_2138_0), 0, 8504 }, /* MOVE.L (xxx).W,-(An) */ +{ CPUFUNC(op_2139_0), 0, 8505 }, /* MOVE.L (xxx).L,-(An) */ +{ CPUFUNC(op_213a_0), 0, 8506 }, /* MOVE.L (d16,PC),-(An) */ +{ CPUFUNC(op_213b_3), 0, 8507 }, /* MOVE.L (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_213c_0), 0, 8508 }, /* MOVE.L #.L,-(An) */ +{ CPUFUNC(op_2140_0), 0, 8512 }, /* MOVE.L Dn,(d16,An) */ +{ CPUFUNC(op_2148_0), 0, 8520 }, /* MOVE.L An,(d16,An) */ +{ CPUFUNC(op_2150_0), 0, 8528 }, /* MOVE.L (An),(d16,An) */ +{ CPUFUNC(op_2158_0), 0, 8536 }, /* MOVE.L (An)+,(d16,An) */ +{ CPUFUNC(op_2160_0), 0, 8544 }, /* MOVE.L -(An),(d16,An) */ +{ CPUFUNC(op_2168_0), 0, 8552 }, /* MOVE.L (d16,An),(d16,An) */ +{ CPUFUNC(op_2170_3), 0, 8560 }, /* MOVE.L (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_2178_0), 0, 8568 }, /* MOVE.L (xxx).W,(d16,An) */ +{ CPUFUNC(op_2179_0), 0, 8569 }, /* MOVE.L (xxx).L,(d16,An) */ +{ CPUFUNC(op_217a_0), 0, 8570 }, /* MOVE.L (d16,PC),(d16,An) */ +{ CPUFUNC(op_217b_3), 0, 8571 }, /* MOVE.L (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_217c_0), 0, 8572 }, /* MOVE.L #.L,(d16,An) */ +{ CPUFUNC(op_2180_3), 0, 8576 }, /* MOVE.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_2188_3), 0, 8584 }, /* MOVE.L An,(d8,An,Xn) */ +{ CPUFUNC(op_2190_3), 0, 8592 }, /* MOVE.L (An),(d8,An,Xn) */ +{ CPUFUNC(op_2198_3), 0, 8600 }, /* MOVE.L (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_21a0_3), 0, 8608 }, /* MOVE.L -(An),(d8,An,Xn) */ +{ CPUFUNC(op_21a8_3), 0, 8616 }, /* MOVE.L (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_21b0_3), 0, 8624 }, /* MOVE.L (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_21b8_3), 0, 8632 }, /* MOVE.L (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_21b9_3), 0, 8633 }, /* MOVE.L (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_21ba_3), 0, 8634 }, /* MOVE.L (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_21bb_3), 0, 8635 }, /* MOVE.L (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_21bc_3), 0, 8636 }, /* MOVE.L #.L,(d8,An,Xn) */ +{ CPUFUNC(op_21c0_0), 0, 8640 }, /* MOVE.L Dn,(xxx).W */ +{ CPUFUNC(op_21c8_0), 0, 8648 }, /* MOVE.L An,(xxx).W */ +{ CPUFUNC(op_21d0_0), 0, 8656 }, /* MOVE.L (An),(xxx).W */ +{ CPUFUNC(op_21d8_0), 0, 8664 }, /* MOVE.L (An)+,(xxx).W */ +{ CPUFUNC(op_21e0_0), 0, 8672 }, /* MOVE.L -(An),(xxx).W */ +{ CPUFUNC(op_21e8_0), 0, 8680 }, /* MOVE.L (d16,An),(xxx).W */ +{ CPUFUNC(op_21f0_3), 0, 8688 }, /* MOVE.L (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_21f8_0), 0, 8696 }, /* MOVE.L (xxx).W,(xxx).W */ +{ CPUFUNC(op_21f9_0), 0, 8697 }, /* MOVE.L (xxx).L,(xxx).W */ +{ CPUFUNC(op_21fa_0), 0, 8698 }, /* MOVE.L (d16,PC),(xxx).W */ +{ CPUFUNC(op_21fb_3), 0, 8699 }, /* MOVE.L (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_21fc_0), 0, 8700 }, /* MOVE.L #.L,(xxx).W */ +{ CPUFUNC(op_23c0_0), 0, 9152 }, /* MOVE.L Dn,(xxx).L */ +{ CPUFUNC(op_23c8_0), 0, 9160 }, /* MOVE.L An,(xxx).L */ +{ CPUFUNC(op_23d0_0), 0, 9168 }, /* MOVE.L (An),(xxx).L */ +{ CPUFUNC(op_23d8_0), 0, 9176 }, /* MOVE.L (An)+,(xxx).L */ +{ CPUFUNC(op_23e0_0), 0, 9184 }, /* MOVE.L -(An),(xxx).L */ +{ CPUFUNC(op_23e8_0), 0, 9192 }, /* MOVE.L (d16,An),(xxx).L */ +{ CPUFUNC(op_23f0_3), 0, 9200 }, /* MOVE.L (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_23f8_0), 0, 9208 }, /* MOVE.L (xxx).W,(xxx).L */ +{ CPUFUNC(op_23f9_0), 0, 9209 }, /* MOVE.L (xxx).L,(xxx).L */ +{ CPUFUNC(op_23fa_0), 0, 9210 }, /* MOVE.L (d16,PC),(xxx).L */ +{ CPUFUNC(op_23fb_3), 0, 9211 }, /* MOVE.L (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_23fc_0), 0, 9212 }, /* MOVE.L #.L,(xxx).L */ +{ CPUFUNC(op_3000_0), 0, 12288 }, /* MOVE.W Dn,Dn */ +{ CPUFUNC(op_3008_0), 0, 12296 }, /* MOVE.W An,Dn */ +{ CPUFUNC(op_3010_0), 0, 12304 }, /* MOVE.W (An),Dn */ +{ CPUFUNC(op_3018_0), 0, 12312 }, /* MOVE.W (An)+,Dn */ +{ CPUFUNC(op_3020_0), 0, 12320 }, /* MOVE.W -(An),Dn */ +{ CPUFUNC(op_3028_0), 0, 12328 }, /* MOVE.W (d16,An),Dn */ +{ CPUFUNC(op_3030_3), 0, 12336 }, /* MOVE.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_3038_0), 0, 12344 }, /* MOVE.W (xxx).W,Dn */ +{ CPUFUNC(op_3039_0), 0, 12345 }, /* MOVE.W (xxx).L,Dn */ +{ CPUFUNC(op_303a_0), 0, 12346 }, /* MOVE.W (d16,PC),Dn */ +{ CPUFUNC(op_303b_3), 0, 12347 }, /* MOVE.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_303c_0), 0, 12348 }, /* MOVE.W #.W,Dn */ +{ CPUFUNC_FF(op_3040_0), 0, 12352 }, /* MOVEA.W Dn,An */ +{ CPUFUNC_FF(op_3048_0), 0, 12360 }, /* MOVEA.W An,An */ +{ CPUFUNC_FF(op_3050_0), 0, 12368 }, /* MOVEA.W (An),An */ +{ CPUFUNC_FF(op_3058_0), 0, 12376 }, /* MOVEA.W (An)+,An */ +{ CPUFUNC_FF(op_3060_0), 0, 12384 }, /* MOVEA.W -(An),An */ +{ CPUFUNC_FF(op_3068_0), 0, 12392 }, /* MOVEA.W (d16,An),An */ +{ CPUFUNC_FF(op_3070_3), 0, 12400 }, /* MOVEA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_3078_0), 0, 12408 }, /* MOVEA.W (xxx).W,An */ +{ CPUFUNC_FF(op_3079_0), 0, 12409 }, /* MOVEA.W (xxx).L,An */ +{ CPUFUNC_FF(op_307a_0), 0, 12410 }, /* MOVEA.W (d16,PC),An */ +{ CPUFUNC_FF(op_307b_3), 0, 12411 }, /* MOVEA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_307c_0), 0, 12412 }, /* MOVEA.W #.W,An */ +{ CPUFUNC(op_3080_0), 0, 12416 }, /* MOVE.W Dn,(An) */ +{ CPUFUNC(op_3088_0), 0, 12424 }, /* MOVE.W An,(An) */ +{ CPUFUNC(op_3090_0), 0, 12432 }, /* MOVE.W (An),(An) */ +{ CPUFUNC(op_3098_0), 0, 12440 }, /* MOVE.W (An)+,(An) */ +{ CPUFUNC(op_30a0_0), 0, 12448 }, /* MOVE.W -(An),(An) */ +{ CPUFUNC(op_30a8_0), 0, 12456 }, /* MOVE.W (d16,An),(An) */ +{ CPUFUNC(op_30b0_3), 0, 12464 }, /* MOVE.W (d8,An,Xn),(An) */ +{ CPUFUNC(op_30b8_0), 0, 12472 }, /* MOVE.W (xxx).W,(An) */ +{ CPUFUNC(op_30b9_0), 0, 12473 }, /* MOVE.W (xxx).L,(An) */ +{ CPUFUNC(op_30ba_0), 0, 12474 }, /* MOVE.W (d16,PC),(An) */ +{ CPUFUNC(op_30bb_3), 0, 12475 }, /* MOVE.W (d8,PC,Xn),(An) */ +{ CPUFUNC(op_30bc_0), 0, 12476 }, /* MOVE.W #.W,(An) */ +{ CPUFUNC(op_30c0_0), 0, 12480 }, /* MOVE.W Dn,(An)+ */ +{ CPUFUNC(op_30c8_0), 0, 12488 }, /* MOVE.W An,(An)+ */ +{ CPUFUNC(op_30d0_0), 0, 12496 }, /* MOVE.W (An),(An)+ */ +{ CPUFUNC(op_30d8_0), 0, 12504 }, /* MOVE.W (An)+,(An)+ */ +{ CPUFUNC(op_30e0_0), 0, 12512 }, /* MOVE.W -(An),(An)+ */ +{ CPUFUNC(op_30e8_0), 0, 12520 }, /* MOVE.W (d16,An),(An)+ */ +{ CPUFUNC(op_30f0_3), 0, 12528 }, /* MOVE.W (d8,An,Xn),(An)+ */ +{ CPUFUNC(op_30f8_0), 0, 12536 }, /* MOVE.W (xxx).W,(An)+ */ +{ CPUFUNC(op_30f9_0), 0, 12537 }, /* MOVE.W (xxx).L,(An)+ */ +{ CPUFUNC(op_30fa_0), 0, 12538 }, /* MOVE.W (d16,PC),(An)+ */ +{ CPUFUNC(op_30fb_3), 0, 12539 }, /* MOVE.W (d8,PC,Xn),(An)+ */ +{ CPUFUNC(op_30fc_0), 0, 12540 }, /* MOVE.W #.W,(An)+ */ +{ CPUFUNC(op_3100_0), 0, 12544 }, /* MOVE.W Dn,-(An) */ +{ CPUFUNC(op_3108_0), 0, 12552 }, /* MOVE.W An,-(An) */ +{ CPUFUNC(op_3110_0), 0, 12560 }, /* MOVE.W (An),-(An) */ +{ CPUFUNC(op_3118_0), 0, 12568 }, /* MOVE.W (An)+,-(An) */ +{ CPUFUNC(op_3120_0), 0, 12576 }, /* MOVE.W -(An),-(An) */ +{ CPUFUNC(op_3128_0), 0, 12584 }, /* MOVE.W (d16,An),-(An) */ +{ CPUFUNC(op_3130_3), 0, 12592 }, /* MOVE.W (d8,An,Xn),-(An) */ +{ CPUFUNC(op_3138_0), 0, 12600 }, /* MOVE.W (xxx).W,-(An) */ +{ CPUFUNC(op_3139_0), 0, 12601 }, /* MOVE.W (xxx).L,-(An) */ +{ CPUFUNC(op_313a_0), 0, 12602 }, /* MOVE.W (d16,PC),-(An) */ +{ CPUFUNC(op_313b_3), 0, 12603 }, /* MOVE.W (d8,PC,Xn),-(An) */ +{ CPUFUNC(op_313c_0), 0, 12604 }, /* MOVE.W #.W,-(An) */ +{ CPUFUNC(op_3140_0), 0, 12608 }, /* MOVE.W Dn,(d16,An) */ +{ CPUFUNC(op_3148_0), 0, 12616 }, /* MOVE.W An,(d16,An) */ +{ CPUFUNC(op_3150_0), 0, 12624 }, /* MOVE.W (An),(d16,An) */ +{ CPUFUNC(op_3158_0), 0, 12632 }, /* MOVE.W (An)+,(d16,An) */ +{ CPUFUNC(op_3160_0), 0, 12640 }, /* MOVE.W -(An),(d16,An) */ +{ CPUFUNC(op_3168_0), 0, 12648 }, /* MOVE.W (d16,An),(d16,An) */ +{ CPUFUNC(op_3170_3), 0, 12656 }, /* MOVE.W (d8,An,Xn),(d16,An) */ +{ CPUFUNC(op_3178_0), 0, 12664 }, /* MOVE.W (xxx).W,(d16,An) */ +{ CPUFUNC(op_3179_0), 0, 12665 }, /* MOVE.W (xxx).L,(d16,An) */ +{ CPUFUNC(op_317a_0), 0, 12666 }, /* MOVE.W (d16,PC),(d16,An) */ +{ CPUFUNC(op_317b_3), 0, 12667 }, /* MOVE.W (d8,PC,Xn),(d16,An) */ +{ CPUFUNC(op_317c_0), 0, 12668 }, /* MOVE.W #.W,(d16,An) */ +{ CPUFUNC(op_3180_3), 0, 12672 }, /* MOVE.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_3188_3), 0, 12680 }, /* MOVE.W An,(d8,An,Xn) */ +{ CPUFUNC(op_3190_3), 0, 12688 }, /* MOVE.W (An),(d8,An,Xn) */ +{ CPUFUNC(op_3198_3), 0, 12696 }, /* MOVE.W (An)+,(d8,An,Xn) */ +{ CPUFUNC(op_31a0_3), 0, 12704 }, /* MOVE.W -(An),(d8,An,Xn) */ +{ CPUFUNC(op_31a8_3), 0, 12712 }, /* MOVE.W (d16,An),(d8,An,Xn) */ +{ CPUFUNC(op_31b0_3), 0, 12720 }, /* MOVE.W (d8,An,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_31b8_3), 0, 12728 }, /* MOVE.W (xxx).W,(d8,An,Xn) */ +{ CPUFUNC(op_31b9_3), 0, 12729 }, /* MOVE.W (xxx).L,(d8,An,Xn) */ +{ CPUFUNC(op_31ba_3), 0, 12730 }, /* MOVE.W (d16,PC),(d8,An,Xn) */ +{ CPUFUNC(op_31bb_3), 0, 12731 }, /* MOVE.W (d8,PC,Xn),(d8,An,Xn) */ +{ CPUFUNC(op_31bc_3), 0, 12732 }, /* MOVE.W #.W,(d8,An,Xn) */ +{ CPUFUNC(op_31c0_0), 0, 12736 }, /* MOVE.W Dn,(xxx).W */ +{ CPUFUNC(op_31c8_0), 0, 12744 }, /* MOVE.W An,(xxx).W */ +{ CPUFUNC(op_31d0_0), 0, 12752 }, /* MOVE.W (An),(xxx).W */ +{ CPUFUNC(op_31d8_0), 0, 12760 }, /* MOVE.W (An)+,(xxx).W */ +{ CPUFUNC(op_31e0_0), 0, 12768 }, /* MOVE.W -(An),(xxx).W */ +{ CPUFUNC(op_31e8_0), 0, 12776 }, /* MOVE.W (d16,An),(xxx).W */ +{ CPUFUNC(op_31f0_3), 0, 12784 }, /* MOVE.W (d8,An,Xn),(xxx).W */ +{ CPUFUNC(op_31f8_0), 0, 12792 }, /* MOVE.W (xxx).W,(xxx).W */ +{ CPUFUNC(op_31f9_0), 0, 12793 }, /* MOVE.W (xxx).L,(xxx).W */ +{ CPUFUNC(op_31fa_0), 0, 12794 }, /* MOVE.W (d16,PC),(xxx).W */ +{ CPUFUNC(op_31fb_3), 0, 12795 }, /* MOVE.W (d8,PC,Xn),(xxx).W */ +{ CPUFUNC(op_31fc_0), 0, 12796 }, /* MOVE.W #.W,(xxx).W */ +{ CPUFUNC(op_33c0_0), 0, 13248 }, /* MOVE.W Dn,(xxx).L */ +{ CPUFUNC(op_33c8_0), 0, 13256 }, /* MOVE.W An,(xxx).L */ +{ CPUFUNC(op_33d0_0), 0, 13264 }, /* MOVE.W (An),(xxx).L */ +{ CPUFUNC(op_33d8_0), 0, 13272 }, /* MOVE.W (An)+,(xxx).L */ +{ CPUFUNC(op_33e0_0), 0, 13280 }, /* MOVE.W -(An),(xxx).L */ +{ CPUFUNC(op_33e8_0), 0, 13288 }, /* MOVE.W (d16,An),(xxx).L */ +{ CPUFUNC(op_33f0_3), 0, 13296 }, /* MOVE.W (d8,An,Xn),(xxx).L */ +{ CPUFUNC(op_33f8_0), 0, 13304 }, /* MOVE.W (xxx).W,(xxx).L */ +{ CPUFUNC(op_33f9_0), 0, 13305 }, /* MOVE.W (xxx).L,(xxx).L */ +{ CPUFUNC(op_33fa_0), 0, 13306 }, /* MOVE.W (d16,PC),(xxx).L */ +{ CPUFUNC(op_33fb_3), 0, 13307 }, /* MOVE.W (d8,PC,Xn),(xxx).L */ +{ CPUFUNC(op_33fc_0), 0, 13308 }, /* MOVE.W #.W,(xxx).L */ +{ CPUFUNC(op_4000_0), 0, 16384 }, /* NEGX.B Dn */ +{ CPUFUNC(op_4010_0), 0, 16400 }, /* NEGX.B (An) */ +{ CPUFUNC(op_4018_0), 0, 16408 }, /* NEGX.B (An)+ */ +{ CPUFUNC(op_4020_0), 0, 16416 }, /* NEGX.B -(An) */ +{ CPUFUNC(op_4028_0), 0, 16424 }, /* NEGX.B (d16,An) */ +{ CPUFUNC(op_4030_3), 0, 16432 }, /* NEGX.B (d8,An,Xn) */ +{ CPUFUNC(op_4038_0), 0, 16440 }, /* NEGX.B (xxx).W */ +{ CPUFUNC(op_4039_0), 0, 16441 }, /* NEGX.B (xxx).L */ +{ CPUFUNC(op_4040_0), 0, 16448 }, /* NEGX.W Dn */ +{ CPUFUNC(op_4050_0), 0, 16464 }, /* NEGX.W (An) */ +{ CPUFUNC(op_4058_0), 0, 16472 }, /* NEGX.W (An)+ */ +{ CPUFUNC(op_4060_0), 0, 16480 }, /* NEGX.W -(An) */ +{ CPUFUNC(op_4068_0), 0, 16488 }, /* NEGX.W (d16,An) */ +{ CPUFUNC(op_4070_3), 0, 16496 }, /* NEGX.W (d8,An,Xn) */ +{ CPUFUNC(op_4078_0), 0, 16504 }, /* NEGX.W (xxx).W */ +{ CPUFUNC(op_4079_0), 0, 16505 }, /* NEGX.W (xxx).L */ +{ CPUFUNC(op_4080_0), 0, 16512 }, /* NEGX.L Dn */ +{ CPUFUNC(op_4090_0), 0, 16528 }, /* NEGX.L (An) */ +{ CPUFUNC(op_4098_0), 0, 16536 }, /* NEGX.L (An)+ */ +{ CPUFUNC(op_40a0_0), 0, 16544 }, /* NEGX.L -(An) */ +{ CPUFUNC(op_40a8_0), 0, 16552 }, /* NEGX.L (d16,An) */ +{ CPUFUNC(op_40b0_3), 0, 16560 }, /* NEGX.L (d8,An,Xn) */ +{ CPUFUNC(op_40b8_0), 0, 16568 }, /* NEGX.L (xxx).W */ +{ CPUFUNC(op_40b9_0), 0, 16569 }, /* NEGX.L (xxx).L */ +{ CPUFUNC_FF(op_40c0_4), 0, 16576 }, /* MVSR2.W Dn */ +{ CPUFUNC_FF(op_40d0_4), 0, 16592 }, /* MVSR2.W (An) */ +{ CPUFUNC_FF(op_40d8_4), 0, 16600 }, /* MVSR2.W (An)+ */ +{ CPUFUNC_FF(op_40e0_4), 0, 16608 }, /* MVSR2.W -(An) */ +{ CPUFUNC_FF(op_40e8_4), 0, 16616 }, /* MVSR2.W (d16,An) */ +{ CPUFUNC_FF(op_40f0_4), 0, 16624 }, /* MVSR2.W (d8,An,Xn) */ +{ CPUFUNC_FF(op_40f8_4), 0, 16632 }, /* MVSR2.W (xxx).W */ +{ CPUFUNC_FF(op_40f9_4), 0, 16633 }, /* MVSR2.W (xxx).L */ +{ CPUFUNC(op_4100_0), 0, 16640 }, /* CHK.L Dn,Dn */ +{ CPUFUNC(op_4110_0), 0, 16656 }, /* CHK.L (An),Dn */ +{ CPUFUNC(op_4118_0), 0, 16664 }, /* CHK.L (An)+,Dn */ +{ CPUFUNC(op_4120_0), 0, 16672 }, /* CHK.L -(An),Dn */ +{ CPUFUNC(op_4128_0), 0, 16680 }, /* CHK.L (d16,An),Dn */ +{ CPUFUNC(op_4130_3), 0, 16688 }, /* CHK.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_4138_0), 0, 16696 }, /* CHK.L (xxx).W,Dn */ +{ CPUFUNC(op_4139_0), 0, 16697 }, /* CHK.L (xxx).L,Dn */ +{ CPUFUNC(op_413a_0), 0, 16698 }, /* CHK.L (d16,PC),Dn */ +{ CPUFUNC(op_413b_3), 0, 16699 }, /* CHK.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_413c_0), 0, 16700 }, /* CHK.L #.L,Dn */ +{ CPUFUNC(op_4180_0), 0, 16768 }, /* CHK.W Dn,Dn */ +{ CPUFUNC(op_4190_0), 0, 16784 }, /* CHK.W (An),Dn */ +{ CPUFUNC(op_4198_0), 0, 16792 }, /* CHK.W (An)+,Dn */ +{ CPUFUNC(op_41a0_0), 0, 16800 }, /* CHK.W -(An),Dn */ +{ CPUFUNC(op_41a8_0), 0, 16808 }, /* CHK.W (d16,An),Dn */ +{ CPUFUNC(op_41b0_3), 0, 16816 }, /* CHK.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_41b8_0), 0, 16824 }, /* CHK.W (xxx).W,Dn */ +{ CPUFUNC(op_41b9_0), 0, 16825 }, /* CHK.W (xxx).L,Dn */ +{ CPUFUNC(op_41ba_0), 0, 16826 }, /* CHK.W (d16,PC),Dn */ +{ CPUFUNC(op_41bb_3), 0, 16827 }, /* CHK.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_41bc_0), 0, 16828 }, /* CHK.W #.W,Dn */ +{ CPUFUNC_FF(op_41d0_0), 0, 16848 }, /* LEA.L (An),An */ +{ CPUFUNC_FF(op_41e8_0), 0, 16872 }, /* LEA.L (d16,An),An */ +{ CPUFUNC_FF(op_41f0_3), 0, 16880 }, /* LEA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_41f8_0), 0, 16888 }, /* LEA.L (xxx).W,An */ +{ CPUFUNC_FF(op_41f9_0), 0, 16889 }, /* LEA.L (xxx).L,An */ +{ CPUFUNC_FF(op_41fa_0), 0, 16890 }, /* LEA.L (d16,PC),An */ +{ CPUFUNC_FF(op_41fb_3), 0, 16891 }, /* LEA.L (d8,PC,Xn),An */ +{ CPUFUNC(op_4200_0), 0, 16896 }, /* CLR.B Dn */ +{ CPUFUNC(op_4210_0), 0, 16912 }, /* CLR.B (An) */ +{ CPUFUNC(op_4218_0), 0, 16920 }, /* CLR.B (An)+ */ +{ CPUFUNC(op_4220_0), 0, 16928 }, /* CLR.B -(An) */ +{ CPUFUNC(op_4228_0), 0, 16936 }, /* CLR.B (d16,An) */ +{ CPUFUNC(op_4230_3), 0, 16944 }, /* CLR.B (d8,An,Xn) */ +{ CPUFUNC(op_4238_0), 0, 16952 }, /* CLR.B (xxx).W */ +{ CPUFUNC(op_4239_0), 0, 16953 }, /* CLR.B (xxx).L */ +{ CPUFUNC(op_4240_0), 0, 16960 }, /* CLR.W Dn */ +{ CPUFUNC(op_4250_0), 0, 16976 }, /* CLR.W (An) */ +{ CPUFUNC(op_4258_0), 0, 16984 }, /* CLR.W (An)+ */ +{ CPUFUNC(op_4260_0), 0, 16992 }, /* CLR.W -(An) */ +{ CPUFUNC(op_4268_0), 0, 17000 }, /* CLR.W (d16,An) */ +{ CPUFUNC(op_4270_3), 0, 17008 }, /* CLR.W (d8,An,Xn) */ +{ CPUFUNC(op_4278_0), 0, 17016 }, /* CLR.W (xxx).W */ +{ CPUFUNC(op_4279_0), 0, 17017 }, /* CLR.W (xxx).L */ +{ CPUFUNC(op_4280_0), 0, 17024 }, /* CLR.L Dn */ +{ CPUFUNC(op_4290_0), 0, 17040 }, /* CLR.L (An) */ +{ CPUFUNC(op_4298_0), 0, 17048 }, /* CLR.L (An)+ */ +{ CPUFUNC(op_42a0_0), 0, 17056 }, /* CLR.L -(An) */ +{ CPUFUNC(op_42a8_0), 0, 17064 }, /* CLR.L (d16,An) */ +{ CPUFUNC(op_42b0_3), 0, 17072 }, /* CLR.L (d8,An,Xn) */ +{ CPUFUNC(op_42b8_0), 0, 17080 }, /* CLR.L (xxx).W */ +{ CPUFUNC(op_42b9_0), 0, 17081 }, /* CLR.L (xxx).L */ +{ CPUFUNC(op_4400_0), 0, 17408 }, /* NEG.B Dn */ +{ CPUFUNC(op_4410_0), 0, 17424 }, /* NEG.B (An) */ +{ CPUFUNC(op_4418_0), 0, 17432 }, /* NEG.B (An)+ */ +{ CPUFUNC(op_4420_0), 0, 17440 }, /* NEG.B -(An) */ +{ CPUFUNC(op_4428_0), 0, 17448 }, /* NEG.B (d16,An) */ +{ CPUFUNC(op_4430_3), 0, 17456 }, /* NEG.B (d8,An,Xn) */ +{ CPUFUNC(op_4438_0), 0, 17464 }, /* NEG.B (xxx).W */ +{ CPUFUNC(op_4439_0), 0, 17465 }, /* NEG.B (xxx).L */ +{ CPUFUNC(op_4440_0), 0, 17472 }, /* NEG.W Dn */ +{ CPUFUNC(op_4450_0), 0, 17488 }, /* NEG.W (An) */ +{ CPUFUNC(op_4458_0), 0, 17496 }, /* NEG.W (An)+ */ +{ CPUFUNC(op_4460_0), 0, 17504 }, /* NEG.W -(An) */ +{ CPUFUNC(op_4468_0), 0, 17512 }, /* NEG.W (d16,An) */ +{ CPUFUNC(op_4470_3), 0, 17520 }, /* NEG.W (d8,An,Xn) */ +{ CPUFUNC(op_4478_0), 0, 17528 }, /* NEG.W (xxx).W */ +{ CPUFUNC(op_4479_0), 0, 17529 }, /* NEG.W (xxx).L */ +{ CPUFUNC(op_4480_0), 0, 17536 }, /* NEG.L Dn */ +{ CPUFUNC(op_4490_0), 0, 17552 }, /* NEG.L (An) */ +{ CPUFUNC(op_4498_0), 0, 17560 }, /* NEG.L (An)+ */ +{ CPUFUNC(op_44a0_0), 0, 17568 }, /* NEG.L -(An) */ +{ CPUFUNC(op_44a8_0), 0, 17576 }, /* NEG.L (d16,An) */ +{ CPUFUNC(op_44b0_3), 0, 17584 }, /* NEG.L (d8,An,Xn) */ +{ CPUFUNC(op_44b8_0), 0, 17592 }, /* NEG.L (xxx).W */ +{ CPUFUNC(op_44b9_0), 0, 17593 }, /* NEG.L (xxx).L */ +{ CPUFUNC(op_44c0_0), 0, 17600 }, /* MV2SR.B Dn */ +{ CPUFUNC(op_44d0_0), 0, 17616 }, /* MV2SR.B (An) */ +{ CPUFUNC(op_44d8_0), 0, 17624 }, /* MV2SR.B (An)+ */ +{ CPUFUNC(op_44e0_0), 0, 17632 }, /* MV2SR.B -(An) */ +{ CPUFUNC(op_44e8_0), 0, 17640 }, /* MV2SR.B (d16,An) */ +{ CPUFUNC(op_44f0_3), 0, 17648 }, /* MV2SR.B (d8,An,Xn) */ +{ CPUFUNC(op_44f8_0), 0, 17656 }, /* MV2SR.B (xxx).W */ +{ CPUFUNC(op_44f9_0), 0, 17657 }, /* MV2SR.B (xxx).L */ +{ CPUFUNC(op_44fa_0), 0, 17658 }, /* MV2SR.B (d16,PC) */ +{ CPUFUNC(op_44fb_3), 0, 17659 }, /* MV2SR.B (d8,PC,Xn) */ +{ CPUFUNC(op_44fc_0), 0, 17660 }, /* MV2SR.B #.B */ +{ CPUFUNC(op_4600_0), 0, 17920 }, /* NOT.B Dn */ +{ CPUFUNC(op_4610_0), 0, 17936 }, /* NOT.B (An) */ +{ CPUFUNC(op_4618_0), 0, 17944 }, /* NOT.B (An)+ */ +{ CPUFUNC(op_4620_0), 0, 17952 }, /* NOT.B -(An) */ +{ CPUFUNC(op_4628_0), 0, 17960 }, /* NOT.B (d16,An) */ +{ CPUFUNC(op_4630_3), 0, 17968 }, /* NOT.B (d8,An,Xn) */ +{ CPUFUNC(op_4638_0), 0, 17976 }, /* NOT.B (xxx).W */ +{ CPUFUNC(op_4639_0), 0, 17977 }, /* NOT.B (xxx).L */ +{ CPUFUNC(op_4640_0), 0, 17984 }, /* NOT.W Dn */ +{ CPUFUNC(op_4650_0), 0, 18000 }, /* NOT.W (An) */ +{ CPUFUNC(op_4658_0), 0, 18008 }, /* NOT.W (An)+ */ +{ CPUFUNC(op_4660_0), 0, 18016 }, /* NOT.W -(An) */ +{ CPUFUNC(op_4668_0), 0, 18024 }, /* NOT.W (d16,An) */ +{ CPUFUNC(op_4670_3), 0, 18032 }, /* NOT.W (d8,An,Xn) */ +{ CPUFUNC(op_4678_0), 0, 18040 }, /* NOT.W (xxx).W */ +{ CPUFUNC(op_4679_0), 0, 18041 }, /* NOT.W (xxx).L */ +{ CPUFUNC(op_4680_0), 0, 18048 }, /* NOT.L Dn */ +{ CPUFUNC(op_4690_0), 0, 18064 }, /* NOT.L (An) */ +{ CPUFUNC(op_4698_0), 0, 18072 }, /* NOT.L (An)+ */ +{ CPUFUNC(op_46a0_0), 0, 18080 }, /* NOT.L -(An) */ +{ CPUFUNC(op_46a8_0), 0, 18088 }, /* NOT.L (d16,An) */ +{ CPUFUNC(op_46b0_3), 0, 18096 }, /* NOT.L (d8,An,Xn) */ +{ CPUFUNC(op_46b8_0), 0, 18104 }, /* NOT.L (xxx).W */ +{ CPUFUNC(op_46b9_0), 0, 18105 }, /* NOT.L (xxx).L */ +{ CPUFUNC(op_46c0_0), 0, 18112 }, /* MV2SR.W Dn */ +{ CPUFUNC(op_46d0_0), 0, 18128 }, /* MV2SR.W (An) */ +{ CPUFUNC(op_46d8_0), 0, 18136 }, /* MV2SR.W (An)+ */ +{ CPUFUNC(op_46e0_0), 0, 18144 }, /* MV2SR.W -(An) */ +{ CPUFUNC(op_46e8_0), 0, 18152 }, /* MV2SR.W (d16,An) */ +{ CPUFUNC(op_46f0_3), 0, 18160 }, /* MV2SR.W (d8,An,Xn) */ +{ CPUFUNC(op_46f8_0), 0, 18168 }, /* MV2SR.W (xxx).W */ +{ CPUFUNC(op_46f9_0), 0, 18169 }, /* MV2SR.W (xxx).L */ +{ CPUFUNC(op_46fa_0), 0, 18170 }, /* MV2SR.W (d16,PC) */ +{ CPUFUNC(op_46fb_3), 0, 18171 }, /* MV2SR.W (d8,PC,Xn) */ +{ CPUFUNC(op_46fc_0), 0, 18172 }, /* MV2SR.W #.W */ +{ CPUFUNC(op_4800_1), 0, 18432 }, /* NBCD.B Dn */ +{ CPUFUNC(op_4810_1), 0, 18448 }, /* NBCD.B (An) */ +{ CPUFUNC(op_4818_1), 0, 18456 }, /* NBCD.B (An)+ */ +{ CPUFUNC(op_4820_1), 0, 18464 }, /* NBCD.B -(An) */ +{ CPUFUNC(op_4828_1), 0, 18472 }, /* NBCD.B (d16,An) */ +{ CPUFUNC(op_4830_3), 0, 18480 }, /* NBCD.B (d8,An,Xn) */ +{ CPUFUNC(op_4838_1), 0, 18488 }, /* NBCD.B (xxx).W */ +{ CPUFUNC(op_4839_1), 0, 18489 }, /* NBCD.B (xxx).L */ +{ CPUFUNC(op_4840_0), 0, 18496 }, /* SWAP.W Dn */ +{ CPUFUNC_FF(op_4850_0), 0, 18512 }, /* PEA.L (An) */ +{ CPUFUNC_FF(op_4868_0), 0, 18536 }, /* PEA.L (d16,An) */ +{ CPUFUNC_FF(op_4870_3), 0, 18544 }, /* PEA.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4878_0), 0, 18552 }, /* PEA.L (xxx).W */ +{ CPUFUNC_FF(op_4879_0), 0, 18553 }, /* PEA.L (xxx).L */ +{ CPUFUNC_FF(op_487a_0), 0, 18554 }, /* PEA.L (d16,PC) */ +{ CPUFUNC_FF(op_487b_3), 0, 18555 }, /* PEA.L (d8,PC,Xn) */ +{ CPUFUNC(op_4880_0), 0, 18560 }, /* EXT.W Dn */ +{ CPUFUNC_FF(op_4890_0), 0, 18576 }, /* MVMLE.W #.W,(An) */ +{ CPUFUNC_FF(op_48a0_0), 0, 18592 }, /* MVMLE.W #.W,-(An) */ +{ CPUFUNC_FF(op_48a8_0), 0, 18600 }, /* MVMLE.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_48b0_3), 0, 18608 }, /* MVMLE.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_48b8_0), 0, 18616 }, /* MVMLE.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_48b9_0), 0, 18617 }, /* MVMLE.W #.W,(xxx).L */ +{ CPUFUNC(op_48c0_0), 0, 18624 }, /* EXT.L Dn */ +{ CPUFUNC_FF(op_48d0_0), 0, 18640 }, /* MVMLE.L #.W,(An) */ +{ CPUFUNC_FF(op_48e0_0), 0, 18656 }, /* MVMLE.L #.W,-(An) */ +{ CPUFUNC_FF(op_48e8_0), 0, 18664 }, /* MVMLE.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_48f0_3), 0, 18672 }, /* MVMLE.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_48f8_0), 0, 18680 }, /* MVMLE.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_48f9_0), 0, 18681 }, /* MVMLE.L #.W,(xxx).L */ +{ CPUFUNC(op_49c0_0), 0, 18880 }, /* EXT.B Dn */ +{ CPUFUNC(op_4a00_0), 0, 18944 }, /* TST.B Dn */ +{ CPUFUNC(op_4a10_0), 0, 18960 }, /* TST.B (An) */ +{ CPUFUNC(op_4a18_0), 0, 18968 }, /* TST.B (An)+ */ +{ CPUFUNC(op_4a20_0), 0, 18976 }, /* TST.B -(An) */ +{ CPUFUNC(op_4a28_0), 0, 18984 }, /* TST.B (d16,An) */ +{ CPUFUNC(op_4a30_3), 0, 18992 }, /* TST.B (d8,An,Xn) */ +{ CPUFUNC(op_4a38_0), 0, 19000 }, /* TST.B (xxx).W */ +{ CPUFUNC(op_4a39_0), 0, 19001 }, /* TST.B (xxx).L */ +{ CPUFUNC(op_4a3a_0), 0, 19002 }, /* TST.B (d16,PC) */ +{ CPUFUNC(op_4a3b_3), 0, 19003 }, /* TST.B (d8,PC,Xn) */ +{ CPUFUNC(op_4a3c_0), 0, 19004 }, /* TST.B #.B */ +{ CPUFUNC(op_4a40_0), 0, 19008 }, /* TST.W Dn */ +{ CPUFUNC(op_4a48_0), 0, 19016 }, /* TST.W An */ +{ CPUFUNC(op_4a50_0), 0, 19024 }, /* TST.W (An) */ +{ CPUFUNC(op_4a58_0), 0, 19032 }, /* TST.W (An)+ */ +{ CPUFUNC(op_4a60_0), 0, 19040 }, /* TST.W -(An) */ +{ CPUFUNC(op_4a68_0), 0, 19048 }, /* TST.W (d16,An) */ +{ CPUFUNC(op_4a70_3), 0, 19056 }, /* TST.W (d8,An,Xn) */ +{ CPUFUNC(op_4a78_0), 0, 19064 }, /* TST.W (xxx).W */ +{ CPUFUNC(op_4a79_0), 0, 19065 }, /* TST.W (xxx).L */ +{ CPUFUNC(op_4a7a_0), 0, 19066 }, /* TST.W (d16,PC) */ +{ CPUFUNC(op_4a7b_3), 0, 19067 }, /* TST.W (d8,PC,Xn) */ +{ CPUFUNC(op_4a7c_0), 0, 19068 }, /* TST.W #.W */ +{ CPUFUNC(op_4a80_0), 0, 19072 }, /* TST.L Dn */ +{ CPUFUNC(op_4a88_0), 0, 19080 }, /* TST.L An */ +{ CPUFUNC(op_4a90_0), 0, 19088 }, /* TST.L (An) */ +{ CPUFUNC(op_4a98_0), 0, 19096 }, /* TST.L (An)+ */ +{ CPUFUNC(op_4aa0_0), 0, 19104 }, /* TST.L -(An) */ +{ CPUFUNC(op_4aa8_0), 0, 19112 }, /* TST.L (d16,An) */ +{ CPUFUNC(op_4ab0_3), 0, 19120 }, /* TST.L (d8,An,Xn) */ +{ CPUFUNC(op_4ab8_0), 0, 19128 }, /* TST.L (xxx).W */ +{ CPUFUNC(op_4ab9_0), 0, 19129 }, /* TST.L (xxx).L */ +{ CPUFUNC(op_4aba_0), 0, 19130 }, /* TST.L (d16,PC) */ +{ CPUFUNC(op_4abb_3), 0, 19131 }, /* TST.L (d8,PC,Xn) */ +{ CPUFUNC(op_4abc_0), 0, 19132 }, /* TST.L #.L */ +{ CPUFUNC(op_4ac0_0), 0, 19136 }, /* TAS.B Dn */ +{ CPUFUNC(op_4ad0_0), 0, 19152 }, /* TAS.B (An) */ +{ CPUFUNC(op_4ad8_0), 0, 19160 }, /* TAS.B (An)+ */ +{ CPUFUNC(op_4ae0_0), 0, 19168 }, /* TAS.B -(An) */ +{ CPUFUNC(op_4ae8_0), 0, 19176 }, /* TAS.B (d16,An) */ +{ CPUFUNC(op_4af0_3), 0, 19184 }, /* TAS.B (d8,An,Xn) */ +{ CPUFUNC(op_4af8_0), 0, 19192 }, /* TAS.B (xxx).W */ +{ CPUFUNC(op_4af9_0), 0, 19193 }, /* TAS.B (xxx).L */ +{ CPUFUNC_FF(op_4c90_0), 0, 19600 }, /* MVMEL.W #.W,(An) */ +{ CPUFUNC_FF(op_4c98_0), 0, 19608 }, /* MVMEL.W #.W,(An)+ */ +{ CPUFUNC_FF(op_4ca8_0), 0, 19624 }, /* MVMEL.W #.W,(d16,An) */ +{ CPUFUNC_FF(op_4cb0_3), 0, 19632 }, /* MVMEL.W #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_4cb8_0), 0, 19640 }, /* MVMEL.W #.W,(xxx).W */ +{ CPUFUNC_FF(op_4cb9_0), 0, 19641 }, /* MVMEL.W #.W,(xxx).L */ +{ CPUFUNC_FF(op_4cba_0), 0, 19642 }, /* MVMEL.W #.W,(d16,PC) */ +{ CPUFUNC_FF(op_4cbb_3), 0, 19643 }, /* MVMEL.W #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_4cd0_0), 0, 19664 }, /* MVMEL.L #.W,(An) */ +{ CPUFUNC_FF(op_4cd8_0), 0, 19672 }, /* MVMEL.L #.W,(An)+ */ +{ CPUFUNC_FF(op_4ce8_0), 0, 19688 }, /* MVMEL.L #.W,(d16,An) */ +{ CPUFUNC_FF(op_4cf0_3), 0, 19696 }, /* MVMEL.L #.W,(d8,An,Xn) */ +{ CPUFUNC_FF(op_4cf8_0), 0, 19704 }, /* MVMEL.L #.W,(xxx).W */ +{ CPUFUNC_FF(op_4cf9_0), 0, 19705 }, /* MVMEL.L #.W,(xxx).L */ +{ CPUFUNC_FF(op_4cfa_0), 0, 19706 }, /* MVMEL.L #.W,(d16,PC) */ +{ CPUFUNC_FF(op_4cfb_3), 0, 19707 }, /* MVMEL.L #.W,(d8,PC,Xn) */ +{ CPUFUNC_FF(op_4e40_0), 0, 20032 }, /* TRAP.L # */ +{ CPUFUNC_FF(op_4e50_0), 0, 20048 }, /* LINK.W An,#.W */ +{ CPUFUNC_FF(op_4e58_0), 0, 20056 }, /* UNLK.L An */ +{ CPUFUNC_FF(op_4e60_0), 0, 20064 }, /* MVR2USP.L An */ +{ CPUFUNC_FF(op_4e68_0), 0, 20072 }, /* MVUSP2R.L An */ +{ CPUFUNC_FF(op_4e70_0), 0, 20080 }, /* RESET.L */ +{ CPUFUNC_FF(op_4e71_0), 0, 20081 }, /* NOP.L */ +{ CPUFUNC(op_4e72_0), 0, 20082 }, /* STOP.L #.W */ +{ CPUFUNC(op_4e73_4), 0, 20083 }, /* RTE.L */ +{ CPUFUNC_FF(op_4e74_0), 0, 20084 }, /* RTD.L #.W */ +{ CPUFUNC_FF(op_4e75_0), 0, 20085 }, /* RTS.L */ +{ CPUFUNC_FF(op_4e76_0), 0, 20086 }, /* TRAPV.L */ +{ CPUFUNC(op_4e77_0), 0, 20087 }, /* RTR.L */ +{ CPUFUNC_FF(op_4e90_0), 0, 20112 }, /* JSR.L (An) */ +{ CPUFUNC_FF(op_4ea8_0), 0, 20136 }, /* JSR.L (d16,An) */ +{ CPUFUNC_FF(op_4eb0_3), 0, 20144 }, /* JSR.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4eb8_0), 0, 20152 }, /* JSR.L (xxx).W */ +{ CPUFUNC_FF(op_4eb9_0), 0, 20153 }, /* JSR.L (xxx).L */ +{ CPUFUNC_FF(op_4eba_0), 0, 20154 }, /* JSR.L (d16,PC) */ +{ CPUFUNC_FF(op_4ebb_3), 0, 20155 }, /* JSR.L (d8,PC,Xn) */ +{ CPUFUNC_FF(op_4ed0_0), 0, 20176 }, /* JMP.L (An) */ +{ CPUFUNC_FF(op_4ee8_0), 0, 20200 }, /* JMP.L (d16,An) */ +{ CPUFUNC_FF(op_4ef0_3), 0, 20208 }, /* JMP.L (d8,An,Xn) */ +{ CPUFUNC_FF(op_4ef8_0), 0, 20216 }, /* JMP.L (xxx).W */ +{ CPUFUNC_FF(op_4ef9_0), 0, 20217 }, /* JMP.L (xxx).L */ +{ CPUFUNC_FF(op_4efa_0), 0, 20218 }, /* JMP.L (d16,PC) */ +{ CPUFUNC_FF(op_4efb_3), 0, 20219 }, /* JMP.L (d8,PC,Xn) */ +{ CPUFUNC(op_5000_0), 0, 20480 }, /* ADD.B #,Dn */ +{ CPUFUNC(op_5010_0), 0, 20496 }, /* ADD.B #,(An) */ +{ CPUFUNC(op_5018_0), 0, 20504 }, /* ADD.B #,(An)+ */ +{ CPUFUNC(op_5020_0), 0, 20512 }, /* ADD.B #,-(An) */ +{ CPUFUNC(op_5028_0), 0, 20520 }, /* ADD.B #,(d16,An) */ +{ CPUFUNC(op_5030_3), 0, 20528 }, /* ADD.B #,(d8,An,Xn) */ +{ CPUFUNC(op_5038_0), 0, 20536 }, /* ADD.B #,(xxx).W */ +{ CPUFUNC(op_5039_0), 0, 20537 }, /* ADD.B #,(xxx).L */ +{ CPUFUNC(op_5040_0), 0, 20544 }, /* ADD.W #,Dn */ +{ CPUFUNC_FF(op_5048_0), 0, 20552 }, /* ADDA.W #,An */ +{ CPUFUNC(op_5050_0), 0, 20560 }, /* ADD.W #,(An) */ +{ CPUFUNC(op_5058_0), 0, 20568 }, /* ADD.W #,(An)+ */ +{ CPUFUNC(op_5060_0), 0, 20576 }, /* ADD.W #,-(An) */ +{ CPUFUNC(op_5068_0), 0, 20584 }, /* ADD.W #,(d16,An) */ +{ CPUFUNC(op_5070_3), 0, 20592 }, /* ADD.W #,(d8,An,Xn) */ +{ CPUFUNC(op_5078_0), 0, 20600 }, /* ADD.W #,(xxx).W */ +{ CPUFUNC(op_5079_0), 0, 20601 }, /* ADD.W #,(xxx).L */ +{ CPUFUNC(op_5080_0), 0, 20608 }, /* ADD.L #,Dn */ +{ CPUFUNC_FF(op_5088_0), 0, 20616 }, /* ADDA.L #,An */ +{ CPUFUNC(op_5090_0), 0, 20624 }, /* ADD.L #,(An) */ +{ CPUFUNC(op_5098_0), 0, 20632 }, /* ADD.L #,(An)+ */ +{ CPUFUNC(op_50a0_0), 0, 20640 }, /* ADD.L #,-(An) */ +{ CPUFUNC(op_50a8_0), 0, 20648 }, /* ADD.L #,(d16,An) */ +{ CPUFUNC(op_50b0_3), 0, 20656 }, /* ADD.L #,(d8,An,Xn) */ +{ CPUFUNC(op_50b8_0), 0, 20664 }, /* ADD.L #,(xxx).W */ +{ CPUFUNC(op_50b9_0), 0, 20665 }, /* ADD.L #,(xxx).L */ +{ CPUFUNC_FF(op_50c0_0), 0, 20672 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_50c8_0), 0, 20680 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_50d0_0), 0, 20688 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_50d8_0), 0, 20696 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_50e0_0), 0, 20704 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_50e8_0), 0, 20712 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_50f0_3), 0, 20720 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_50f8_0), 0, 20728 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_50f9_0), 0, 20729 }, /* Scc.B (xxx).L */ +{ CPUFUNC(op_5100_0), 0, 20736 }, /* SUB.B #,Dn */ +{ CPUFUNC(op_5110_0), 0, 20752 }, /* SUB.B #,(An) */ +{ CPUFUNC(op_5118_0), 0, 20760 }, /* SUB.B #,(An)+ */ +{ CPUFUNC(op_5120_0), 0, 20768 }, /* SUB.B #,-(An) */ +{ CPUFUNC(op_5128_0), 0, 20776 }, /* SUB.B #,(d16,An) */ +{ CPUFUNC(op_5130_3), 0, 20784 }, /* SUB.B #,(d8,An,Xn) */ +{ CPUFUNC(op_5138_0), 0, 20792 }, /* SUB.B #,(xxx).W */ +{ CPUFUNC(op_5139_0), 0, 20793 }, /* SUB.B #,(xxx).L */ +{ CPUFUNC(op_5140_0), 0, 20800 }, /* SUB.W #,Dn */ +{ CPUFUNC_FF(op_5148_0), 0, 20808 }, /* SUBA.W #,An */ +{ CPUFUNC(op_5150_0), 0, 20816 }, /* SUB.W #,(An) */ +{ CPUFUNC(op_5158_0), 0, 20824 }, /* SUB.W #,(An)+ */ +{ CPUFUNC(op_5160_0), 0, 20832 }, /* SUB.W #,-(An) */ +{ CPUFUNC(op_5168_0), 0, 20840 }, /* SUB.W #,(d16,An) */ +{ CPUFUNC(op_5170_3), 0, 20848 }, /* SUB.W #,(d8,An,Xn) */ +{ CPUFUNC(op_5178_0), 0, 20856 }, /* SUB.W #,(xxx).W */ +{ CPUFUNC(op_5179_0), 0, 20857 }, /* SUB.W #,(xxx).L */ +{ CPUFUNC(op_5180_0), 0, 20864 }, /* SUB.L #,Dn */ +{ CPUFUNC_FF(op_5188_0), 0, 20872 }, /* SUBA.L #,An */ +{ CPUFUNC(op_5190_0), 0, 20880 }, /* SUB.L #,(An) */ +{ CPUFUNC(op_5198_0), 0, 20888 }, /* SUB.L #,(An)+ */ +{ CPUFUNC(op_51a0_0), 0, 20896 }, /* SUB.L #,-(An) */ +{ CPUFUNC(op_51a8_0), 0, 20904 }, /* SUB.L #,(d16,An) */ +{ CPUFUNC(op_51b0_3), 0, 20912 }, /* SUB.L #,(d8,An,Xn) */ +{ CPUFUNC(op_51b8_0), 0, 20920 }, /* SUB.L #,(xxx).W */ +{ CPUFUNC(op_51b9_0), 0, 20921 }, /* SUB.L #,(xxx).L */ +{ CPUFUNC_FF(op_51c0_0), 0, 20928 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_51c8_0), 0, 20936 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_51d0_0), 0, 20944 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_51d8_0), 0, 20952 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_51e0_0), 0, 20960 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_51e8_0), 0, 20968 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_51f0_3), 0, 20976 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_51f8_0), 0, 20984 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_51f9_0), 0, 20985 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_52c0_0), 0, 21184 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_52c8_0), 0, 21192 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_52d0_0), 0, 21200 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_52d8_0), 0, 21208 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_52e0_0), 0, 21216 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_52e8_0), 0, 21224 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_52f0_3), 0, 21232 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_52f8_0), 0, 21240 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_52f9_0), 0, 21241 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_53c0_0), 0, 21440 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_53c8_0), 0, 21448 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_53d0_0), 0, 21456 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_53d8_0), 0, 21464 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_53e0_0), 0, 21472 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_53e8_0), 0, 21480 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_53f0_3), 0, 21488 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_53f8_0), 0, 21496 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_53f9_0), 0, 21497 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_54c0_0), 0, 21696 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_54c8_0), 0, 21704 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_54d0_0), 0, 21712 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_54d8_0), 0, 21720 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_54e0_0), 0, 21728 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_54e8_0), 0, 21736 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_54f0_3), 0, 21744 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_54f8_0), 0, 21752 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_54f9_0), 0, 21753 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_55c0_0), 0, 21952 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_55c8_0), 0, 21960 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_55d0_0), 0, 21968 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_55d8_0), 0, 21976 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_55e0_0), 0, 21984 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_55e8_0), 0, 21992 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_55f0_3), 0, 22000 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_55f8_0), 0, 22008 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_55f9_0), 0, 22009 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_56c0_0), 0, 22208 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_56c8_0), 0, 22216 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_56d0_0), 0, 22224 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_56d8_0), 0, 22232 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_56e0_0), 0, 22240 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_56e8_0), 0, 22248 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_56f0_3), 0, 22256 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_56f8_0), 0, 22264 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_56f9_0), 0, 22265 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_57c0_0), 0, 22464 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_57c8_0), 0, 22472 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_57d0_0), 0, 22480 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_57d8_0), 0, 22488 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_57e0_0), 0, 22496 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_57e8_0), 0, 22504 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_57f0_3), 0, 22512 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_57f8_0), 0, 22520 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_57f9_0), 0, 22521 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_58c0_0), 0, 22720 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_58c8_0), 0, 22728 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_58d0_0), 0, 22736 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_58d8_0), 0, 22744 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_58e0_0), 0, 22752 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_58e8_0), 0, 22760 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_58f0_3), 0, 22768 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_58f8_0), 0, 22776 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_58f9_0), 0, 22777 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_59c0_0), 0, 22976 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_59c8_0), 0, 22984 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_59d0_0), 0, 22992 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_59d8_0), 0, 23000 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_59e0_0), 0, 23008 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_59e8_0), 0, 23016 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_59f0_3), 0, 23024 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_59f8_0), 0, 23032 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_59f9_0), 0, 23033 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5ac0_0), 0, 23232 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5ac8_0), 0, 23240 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5ad0_0), 0, 23248 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5ad8_0), 0, 23256 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ae0_0), 0, 23264 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ae8_0), 0, 23272 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5af0_3), 0, 23280 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5af8_0), 0, 23288 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5af9_0), 0, 23289 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5bc0_0), 0, 23488 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5bc8_0), 0, 23496 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5bd0_0), 0, 23504 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5bd8_0), 0, 23512 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5be0_0), 0, 23520 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5be8_0), 0, 23528 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5bf0_3), 0, 23536 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5bf8_0), 0, 23544 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5bf9_0), 0, 23545 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5cc0_0), 0, 23744 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5cc8_0), 0, 23752 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5cd0_0), 0, 23760 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5cd8_0), 0, 23768 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ce0_0), 0, 23776 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ce8_0), 0, 23784 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5cf0_3), 0, 23792 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5cf8_0), 0, 23800 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5cf9_0), 0, 23801 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5dc0_0), 0, 24000 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5dc8_0), 0, 24008 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5dd0_0), 0, 24016 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5dd8_0), 0, 24024 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5de0_0), 0, 24032 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5de8_0), 0, 24040 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5df0_3), 0, 24048 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5df8_0), 0, 24056 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5df9_0), 0, 24057 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5ec0_0), 0, 24256 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5ec8_0), 0, 24264 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5ed0_0), 0, 24272 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5ed8_0), 0, 24280 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5ee0_0), 0, 24288 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5ee8_0), 0, 24296 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5ef0_3), 0, 24304 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5ef8_0), 0, 24312 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5ef9_0), 0, 24313 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_5fc0_0), 0, 24512 }, /* Scc.B Dn */ +{ CPUFUNC_FF(op_5fc8_0), 0, 24520 }, /* DBcc.W Dn,#.W */ +{ CPUFUNC_FF(op_5fd0_0), 0, 24528 }, /* Scc.B (An) */ +{ CPUFUNC_FF(op_5fd8_0), 0, 24536 }, /* Scc.B (An)+ */ +{ CPUFUNC_FF(op_5fe0_0), 0, 24544 }, /* Scc.B -(An) */ +{ CPUFUNC_FF(op_5fe8_0), 0, 24552 }, /* Scc.B (d16,An) */ +{ CPUFUNC_FF(op_5ff0_3), 0, 24560 }, /* Scc.B (d8,An,Xn) */ +{ CPUFUNC_FF(op_5ff8_0), 0, 24568 }, /* Scc.B (xxx).W */ +{ CPUFUNC_FF(op_5ff9_0), 0, 24569 }, /* Scc.B (xxx).L */ +{ CPUFUNC_FF(op_6000_0), 0, 24576 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6001_0), 0, 24577 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_60ff_3), 0, 24831 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6100_0), 0, 24832 }, /* BSR.W #.W */ +{ CPUFUNC_FF(op_6101_0), 0, 24833 }, /* BSR.B # */ +{ CPUFUNC_FF(op_61ff_0), 0, 25087 }, /* BSR.L #.L */ +{ CPUFUNC_FF(op_6200_0), 0, 25088 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6201_0), 0, 25089 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_62ff_3), 0, 25343 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6300_0), 0, 25344 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6301_0), 0, 25345 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_63ff_3), 0, 25599 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6400_0), 0, 25600 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6401_0), 0, 25601 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_64ff_3), 0, 25855 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6500_0), 0, 25856 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6501_0), 0, 25857 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_65ff_3), 0, 26111 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6600_0), 0, 26112 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6601_0), 0, 26113 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_66ff_3), 0, 26367 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6700_0), 0, 26368 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6701_0), 0, 26369 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_67ff_3), 0, 26623 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6800_0), 0, 26624 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6801_0), 0, 26625 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_68ff_3), 0, 26879 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6900_0), 0, 26880 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6901_0), 0, 26881 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_69ff_3), 0, 27135 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6a00_0), 0, 27136 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6a01_0), 0, 27137 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6aff_3), 0, 27391 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6b00_0), 0, 27392 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6b01_0), 0, 27393 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6bff_3), 0, 27647 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6c00_0), 0, 27648 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6c01_0), 0, 27649 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6cff_3), 0, 27903 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6d00_0), 0, 27904 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6d01_0), 0, 27905 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6dff_3), 0, 28159 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6e00_0), 0, 28160 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6e01_0), 0, 28161 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6eff_3), 0, 28415 }, /* Bcc.L #.L */ +{ CPUFUNC_FF(op_6f00_0), 0, 28416 }, /* Bcc.W #.W */ +{ CPUFUNC_FF(op_6f01_0), 0, 28417 }, /* Bcc.B # */ +{ CPUFUNC_FF(op_6fff_3), 0, 28671 }, /* Bcc.L #.L */ +{ CPUFUNC(op_7000_0), 0, 28672 }, /* MOVE.L #,Dn */ +{ CPUFUNC_FF(op_7100_0), 0, 28928 }, /* EMULOP_RETURN.L */ +{ CPUFUNC_FF(op_7101_0), 0, 28929 }, /* EMULOP.L # */ +{ CPUFUNC(op_8000_0), 0, 32768 }, /* OR.B Dn,Dn */ +{ CPUFUNC(op_8010_0), 0, 32784 }, /* OR.B (An),Dn */ +{ CPUFUNC(op_8018_0), 0, 32792 }, /* OR.B (An)+,Dn */ +{ CPUFUNC(op_8020_0), 0, 32800 }, /* OR.B -(An),Dn */ +{ CPUFUNC(op_8028_0), 0, 32808 }, /* OR.B (d16,An),Dn */ +{ CPUFUNC(op_8030_3), 0, 32816 }, /* OR.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_8038_0), 0, 32824 }, /* OR.B (xxx).W,Dn */ +{ CPUFUNC(op_8039_0), 0, 32825 }, /* OR.B (xxx).L,Dn */ +{ CPUFUNC(op_803a_0), 0, 32826 }, /* OR.B (d16,PC),Dn */ +{ CPUFUNC(op_803b_3), 0, 32827 }, /* OR.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_803c_0), 0, 32828 }, /* OR.B #.B,Dn */ +{ CPUFUNC(op_8040_0), 0, 32832 }, /* OR.W Dn,Dn */ +{ CPUFUNC(op_8050_0), 0, 32848 }, /* OR.W (An),Dn */ +{ CPUFUNC(op_8058_0), 0, 32856 }, /* OR.W (An)+,Dn */ +{ CPUFUNC(op_8060_0), 0, 32864 }, /* OR.W -(An),Dn */ +{ CPUFUNC(op_8068_0), 0, 32872 }, /* OR.W (d16,An),Dn */ +{ CPUFUNC(op_8070_3), 0, 32880 }, /* OR.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_8078_0), 0, 32888 }, /* OR.W (xxx).W,Dn */ +{ CPUFUNC(op_8079_0), 0, 32889 }, /* OR.W (xxx).L,Dn */ +{ CPUFUNC(op_807a_0), 0, 32890 }, /* OR.W (d16,PC),Dn */ +{ CPUFUNC(op_807b_3), 0, 32891 }, /* OR.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_807c_0), 0, 32892 }, /* OR.W #.W,Dn */ +{ CPUFUNC(op_8080_0), 0, 32896 }, /* OR.L Dn,Dn */ +{ CPUFUNC(op_8090_0), 0, 32912 }, /* OR.L (An),Dn */ +{ CPUFUNC(op_8098_0), 0, 32920 }, /* OR.L (An)+,Dn */ +{ CPUFUNC(op_80a0_0), 0, 32928 }, /* OR.L -(An),Dn */ +{ CPUFUNC(op_80a8_0), 0, 32936 }, /* OR.L (d16,An),Dn */ +{ CPUFUNC(op_80b0_3), 0, 32944 }, /* OR.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_80b8_0), 0, 32952 }, /* OR.L (xxx).W,Dn */ +{ CPUFUNC(op_80b9_0), 0, 32953 }, /* OR.L (xxx).L,Dn */ +{ CPUFUNC(op_80ba_0), 0, 32954 }, /* OR.L (d16,PC),Dn */ +{ CPUFUNC(op_80bb_3), 0, 32955 }, /* OR.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_80bc_0), 0, 32956 }, /* OR.L #.L,Dn */ +{ CPUFUNC(op_80c0_0), 0, 32960 }, /* DIVU.W Dn,Dn */ +{ CPUFUNC(op_80d0_0), 0, 32976 }, /* DIVU.W (An),Dn */ +{ CPUFUNC(op_80d8_0), 0, 32984 }, /* DIVU.W (An)+,Dn */ +{ CPUFUNC(op_80e0_0), 0, 32992 }, /* DIVU.W -(An),Dn */ +{ CPUFUNC(op_80e8_0), 0, 33000 }, /* DIVU.W (d16,An),Dn */ +{ CPUFUNC(op_80f0_3), 0, 33008 }, /* DIVU.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_80f8_0), 0, 33016 }, /* DIVU.W (xxx).W,Dn */ +{ CPUFUNC(op_80f9_0), 0, 33017 }, /* DIVU.W (xxx).L,Dn */ +{ CPUFUNC(op_80fa_0), 0, 33018 }, /* DIVU.W (d16,PC),Dn */ +{ CPUFUNC(op_80fb_3), 0, 33019 }, /* DIVU.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_80fc_0), 0, 33020 }, /* DIVU.W #.W,Dn */ +{ CPUFUNC(op_8100_1), 0, 33024 }, /* SBCD.B Dn,Dn */ +{ CPUFUNC(op_8108_1), 0, 33032 }, /* SBCD.B -(An),-(An) */ +{ CPUFUNC(op_8110_0), 0, 33040 }, /* OR.B Dn,(An) */ +{ CPUFUNC(op_8118_0), 0, 33048 }, /* OR.B Dn,(An)+ */ +{ CPUFUNC(op_8120_0), 0, 33056 }, /* OR.B Dn,-(An) */ +{ CPUFUNC(op_8128_0), 0, 33064 }, /* OR.B Dn,(d16,An) */ +{ CPUFUNC(op_8130_3), 0, 33072 }, /* OR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_8138_0), 0, 33080 }, /* OR.B Dn,(xxx).W */ +{ CPUFUNC(op_8139_0), 0, 33081 }, /* OR.B Dn,(xxx).L */ +{ CPUFUNC(op_8150_0), 0, 33104 }, /* OR.W Dn,(An) */ +{ CPUFUNC(op_8158_0), 0, 33112 }, /* OR.W Dn,(An)+ */ +{ CPUFUNC(op_8160_0), 0, 33120 }, /* OR.W Dn,-(An) */ +{ CPUFUNC(op_8168_0), 0, 33128 }, /* OR.W Dn,(d16,An) */ +{ CPUFUNC(op_8170_3), 0, 33136 }, /* OR.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_8178_0), 0, 33144 }, /* OR.W Dn,(xxx).W */ +{ CPUFUNC(op_8179_0), 0, 33145 }, /* OR.W Dn,(xxx).L */ +{ CPUFUNC(op_8190_0), 0, 33168 }, /* OR.L Dn,(An) */ +{ CPUFUNC(op_8198_0), 0, 33176 }, /* OR.L Dn,(An)+ */ +{ CPUFUNC(op_81a0_0), 0, 33184 }, /* OR.L Dn,-(An) */ +{ CPUFUNC(op_81a8_0), 0, 33192 }, /* OR.L Dn,(d16,An) */ +{ CPUFUNC(op_81b0_3), 0, 33200 }, /* OR.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_81b8_0), 0, 33208 }, /* OR.L Dn,(xxx).W */ +{ CPUFUNC(op_81b9_0), 0, 33209 }, /* OR.L Dn,(xxx).L */ +{ CPUFUNC(op_81c0_0), 0, 33216 }, /* DIVS.W Dn,Dn */ +{ CPUFUNC(op_81d0_0), 0, 33232 }, /* DIVS.W (An),Dn */ +{ CPUFUNC(op_81d8_0), 0, 33240 }, /* DIVS.W (An)+,Dn */ +{ CPUFUNC(op_81e0_0), 0, 33248 }, /* DIVS.W -(An),Dn */ +{ CPUFUNC(op_81e8_0), 0, 33256 }, /* DIVS.W (d16,An),Dn */ +{ CPUFUNC(op_81f0_3), 0, 33264 }, /* DIVS.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_81f8_0), 0, 33272 }, /* DIVS.W (xxx).W,Dn */ +{ CPUFUNC(op_81f9_0), 0, 33273 }, /* DIVS.W (xxx).L,Dn */ +{ CPUFUNC(op_81fa_0), 0, 33274 }, /* DIVS.W (d16,PC),Dn */ +{ CPUFUNC(op_81fb_3), 0, 33275 }, /* DIVS.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_81fc_0), 0, 33276 }, /* DIVS.W #.W,Dn */ +{ CPUFUNC(op_9000_0), 0, 36864 }, /* SUB.B Dn,Dn */ +{ CPUFUNC(op_9010_0), 0, 36880 }, /* SUB.B (An),Dn */ +{ CPUFUNC(op_9018_0), 0, 36888 }, /* SUB.B (An)+,Dn */ +{ CPUFUNC(op_9020_0), 0, 36896 }, /* SUB.B -(An),Dn */ +{ CPUFUNC(op_9028_0), 0, 36904 }, /* SUB.B (d16,An),Dn */ +{ CPUFUNC(op_9030_3), 0, 36912 }, /* SUB.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_9038_0), 0, 36920 }, /* SUB.B (xxx).W,Dn */ +{ CPUFUNC(op_9039_0), 0, 36921 }, /* SUB.B (xxx).L,Dn */ +{ CPUFUNC(op_903a_0), 0, 36922 }, /* SUB.B (d16,PC),Dn */ +{ CPUFUNC(op_903b_3), 0, 36923 }, /* SUB.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_903c_0), 0, 36924 }, /* SUB.B #.B,Dn */ +{ CPUFUNC(op_9040_0), 0, 36928 }, /* SUB.W Dn,Dn */ +{ CPUFUNC(op_9048_0), 0, 36936 }, /* SUB.W An,Dn */ +{ CPUFUNC(op_9050_0), 0, 36944 }, /* SUB.W (An),Dn */ +{ CPUFUNC(op_9058_0), 0, 36952 }, /* SUB.W (An)+,Dn */ +{ CPUFUNC(op_9060_0), 0, 36960 }, /* SUB.W -(An),Dn */ +{ CPUFUNC(op_9068_0), 0, 36968 }, /* SUB.W (d16,An),Dn */ +{ CPUFUNC(op_9070_3), 0, 36976 }, /* SUB.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_9078_0), 0, 36984 }, /* SUB.W (xxx).W,Dn */ +{ CPUFUNC(op_9079_0), 0, 36985 }, /* SUB.W (xxx).L,Dn */ +{ CPUFUNC(op_907a_0), 0, 36986 }, /* SUB.W (d16,PC),Dn */ +{ CPUFUNC(op_907b_3), 0, 36987 }, /* SUB.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_907c_0), 0, 36988 }, /* SUB.W #.W,Dn */ +{ CPUFUNC(op_9080_0), 0, 36992 }, /* SUB.L Dn,Dn */ +{ CPUFUNC(op_9088_0), 0, 37000 }, /* SUB.L An,Dn */ +{ CPUFUNC(op_9090_0), 0, 37008 }, /* SUB.L (An),Dn */ +{ CPUFUNC(op_9098_0), 0, 37016 }, /* SUB.L (An)+,Dn */ +{ CPUFUNC(op_90a0_0), 0, 37024 }, /* SUB.L -(An),Dn */ +{ CPUFUNC(op_90a8_0), 0, 37032 }, /* SUB.L (d16,An),Dn */ +{ CPUFUNC(op_90b0_3), 0, 37040 }, /* SUB.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_90b8_0), 0, 37048 }, /* SUB.L (xxx).W,Dn */ +{ CPUFUNC(op_90b9_0), 0, 37049 }, /* SUB.L (xxx).L,Dn */ +{ CPUFUNC(op_90ba_0), 0, 37050 }, /* SUB.L (d16,PC),Dn */ +{ CPUFUNC(op_90bb_3), 0, 37051 }, /* SUB.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_90bc_0), 0, 37052 }, /* SUB.L #.L,Dn */ +{ CPUFUNC_FF(op_90c0_0), 0, 37056 }, /* SUBA.W Dn,An */ +{ CPUFUNC_FF(op_90c8_0), 0, 37064 }, /* SUBA.W An,An */ +{ CPUFUNC_FF(op_90d0_0), 0, 37072 }, /* SUBA.W (An),An */ +{ CPUFUNC_FF(op_90d8_0), 0, 37080 }, /* SUBA.W (An)+,An */ +{ CPUFUNC_FF(op_90e0_0), 0, 37088 }, /* SUBA.W -(An),An */ +{ CPUFUNC_FF(op_90e8_0), 0, 37096 }, /* SUBA.W (d16,An),An */ +{ CPUFUNC_FF(op_90f0_3), 0, 37104 }, /* SUBA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_90f8_0), 0, 37112 }, /* SUBA.W (xxx).W,An */ +{ CPUFUNC_FF(op_90f9_0), 0, 37113 }, /* SUBA.W (xxx).L,An */ +{ CPUFUNC_FF(op_90fa_0), 0, 37114 }, /* SUBA.W (d16,PC),An */ +{ CPUFUNC_FF(op_90fb_3), 0, 37115 }, /* SUBA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_90fc_0), 0, 37116 }, /* SUBA.W #.W,An */ +{ CPUFUNC(op_9100_0), 0, 37120 }, /* SUBX.B Dn,Dn */ +{ CPUFUNC(op_9108_0), 0, 37128 }, /* SUBX.B -(An),-(An) */ +{ CPUFUNC(op_9110_0), 0, 37136 }, /* SUB.B Dn,(An) */ +{ CPUFUNC(op_9118_0), 0, 37144 }, /* SUB.B Dn,(An)+ */ +{ CPUFUNC(op_9120_0), 0, 37152 }, /* SUB.B Dn,-(An) */ +{ CPUFUNC(op_9128_0), 0, 37160 }, /* SUB.B Dn,(d16,An) */ +{ CPUFUNC(op_9130_3), 0, 37168 }, /* SUB.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_9138_0), 0, 37176 }, /* SUB.B Dn,(xxx).W */ +{ CPUFUNC(op_9139_0), 0, 37177 }, /* SUB.B Dn,(xxx).L */ +{ CPUFUNC(op_9140_0), 0, 37184 }, /* SUBX.W Dn,Dn */ +{ CPUFUNC(op_9148_0), 0, 37192 }, /* SUBX.W -(An),-(An) */ +{ CPUFUNC(op_9150_0), 0, 37200 }, /* SUB.W Dn,(An) */ +{ CPUFUNC(op_9158_0), 0, 37208 }, /* SUB.W Dn,(An)+ */ +{ CPUFUNC(op_9160_0), 0, 37216 }, /* SUB.W Dn,-(An) */ +{ CPUFUNC(op_9168_0), 0, 37224 }, /* SUB.W Dn,(d16,An) */ +{ CPUFUNC(op_9170_3), 0, 37232 }, /* SUB.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_9178_0), 0, 37240 }, /* SUB.W Dn,(xxx).W */ +{ CPUFUNC(op_9179_0), 0, 37241 }, /* SUB.W Dn,(xxx).L */ +{ CPUFUNC(op_9180_0), 0, 37248 }, /* SUBX.L Dn,Dn */ +{ CPUFUNC(op_9188_0), 0, 37256 }, /* SUBX.L -(An),-(An) */ +{ CPUFUNC(op_9190_0), 0, 37264 }, /* SUB.L Dn,(An) */ +{ CPUFUNC(op_9198_0), 0, 37272 }, /* SUB.L Dn,(An)+ */ +{ CPUFUNC(op_91a0_0), 0, 37280 }, /* SUB.L Dn,-(An) */ +{ CPUFUNC(op_91a8_0), 0, 37288 }, /* SUB.L Dn,(d16,An) */ +{ CPUFUNC(op_91b0_3), 0, 37296 }, /* SUB.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_91b8_0), 0, 37304 }, /* SUB.L Dn,(xxx).W */ +{ CPUFUNC(op_91b9_0), 0, 37305 }, /* SUB.L Dn,(xxx).L */ +{ CPUFUNC_FF(op_91c0_0), 0, 37312 }, /* SUBA.L Dn,An */ +{ CPUFUNC_FF(op_91c8_0), 0, 37320 }, /* SUBA.L An,An */ +{ CPUFUNC_FF(op_91d0_0), 0, 37328 }, /* SUBA.L (An),An */ +{ CPUFUNC_FF(op_91d8_0), 0, 37336 }, /* SUBA.L (An)+,An */ +{ CPUFUNC_FF(op_91e0_0), 0, 37344 }, /* SUBA.L -(An),An */ +{ CPUFUNC_FF(op_91e8_0), 0, 37352 }, /* SUBA.L (d16,An),An */ +{ CPUFUNC_FF(op_91f0_3), 0, 37360 }, /* SUBA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_91f8_0), 0, 37368 }, /* SUBA.L (xxx).W,An */ +{ CPUFUNC_FF(op_91f9_0), 0, 37369 }, /* SUBA.L (xxx).L,An */ +{ CPUFUNC_FF(op_91fa_0), 0, 37370 }, /* SUBA.L (d16,PC),An */ +{ CPUFUNC_FF(op_91fb_3), 0, 37371 }, /* SUBA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_91fc_0), 0, 37372 }, /* SUBA.L #.L,An */ +{ CPUFUNC(op_b000_0), 0, 45056 }, /* CMP.B Dn,Dn */ +{ CPUFUNC(op_b010_0), 0, 45072 }, /* CMP.B (An),Dn */ +{ CPUFUNC(op_b018_0), 0, 45080 }, /* CMP.B (An)+,Dn */ +{ CPUFUNC(op_b020_0), 0, 45088 }, /* CMP.B -(An),Dn */ +{ CPUFUNC(op_b028_0), 0, 45096 }, /* CMP.B (d16,An),Dn */ +{ CPUFUNC(op_b030_3), 0, 45104 }, /* CMP.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_b038_0), 0, 45112 }, /* CMP.B (xxx).W,Dn */ +{ CPUFUNC(op_b039_0), 0, 45113 }, /* CMP.B (xxx).L,Dn */ +{ CPUFUNC(op_b03a_0), 0, 45114 }, /* CMP.B (d16,PC),Dn */ +{ CPUFUNC(op_b03b_3), 0, 45115 }, /* CMP.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b03c_0), 0, 45116 }, /* CMP.B #.B,Dn */ +{ CPUFUNC(op_b040_0), 0, 45120 }, /* CMP.W Dn,Dn */ +{ CPUFUNC(op_b048_0), 0, 45128 }, /* CMP.W An,Dn */ +{ CPUFUNC(op_b050_0), 0, 45136 }, /* CMP.W (An),Dn */ +{ CPUFUNC(op_b058_0), 0, 45144 }, /* CMP.W (An)+,Dn */ +{ CPUFUNC(op_b060_0), 0, 45152 }, /* CMP.W -(An),Dn */ +{ CPUFUNC(op_b068_0), 0, 45160 }, /* CMP.W (d16,An),Dn */ +{ CPUFUNC(op_b070_3), 0, 45168 }, /* CMP.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_b078_0), 0, 45176 }, /* CMP.W (xxx).W,Dn */ +{ CPUFUNC(op_b079_0), 0, 45177 }, /* CMP.W (xxx).L,Dn */ +{ CPUFUNC(op_b07a_0), 0, 45178 }, /* CMP.W (d16,PC),Dn */ +{ CPUFUNC(op_b07b_3), 0, 45179 }, /* CMP.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b07c_0), 0, 45180 }, /* CMP.W #.W,Dn */ +{ CPUFUNC(op_b080_0), 0, 45184 }, /* CMP.L Dn,Dn */ +{ CPUFUNC(op_b088_0), 0, 45192 }, /* CMP.L An,Dn */ +{ CPUFUNC(op_b090_0), 0, 45200 }, /* CMP.L (An),Dn */ +{ CPUFUNC(op_b098_0), 0, 45208 }, /* CMP.L (An)+,Dn */ +{ CPUFUNC(op_b0a0_0), 0, 45216 }, /* CMP.L -(An),Dn */ +{ CPUFUNC(op_b0a8_0), 0, 45224 }, /* CMP.L (d16,An),Dn */ +{ CPUFUNC(op_b0b0_3), 0, 45232 }, /* CMP.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_b0b8_0), 0, 45240 }, /* CMP.L (xxx).W,Dn */ +{ CPUFUNC(op_b0b9_0), 0, 45241 }, /* CMP.L (xxx).L,Dn */ +{ CPUFUNC(op_b0ba_0), 0, 45242 }, /* CMP.L (d16,PC),Dn */ +{ CPUFUNC(op_b0bb_3), 0, 45243 }, /* CMP.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_b0bc_0), 0, 45244 }, /* CMP.L #.L,Dn */ +{ CPUFUNC(op_b0c0_0), 0, 45248 }, /* CMPA.W Dn,An */ +{ CPUFUNC(op_b0c8_0), 0, 45256 }, /* CMPA.W An,An */ +{ CPUFUNC(op_b0d0_0), 0, 45264 }, /* CMPA.W (An),An */ +{ CPUFUNC(op_b0d8_0), 0, 45272 }, /* CMPA.W (An)+,An */ +{ CPUFUNC(op_b0e0_0), 0, 45280 }, /* CMPA.W -(An),An */ +{ CPUFUNC(op_b0e8_0), 0, 45288 }, /* CMPA.W (d16,An),An */ +{ CPUFUNC(op_b0f0_3), 0, 45296 }, /* CMPA.W (d8,An,Xn),An */ +{ CPUFUNC(op_b0f8_0), 0, 45304 }, /* CMPA.W (xxx).W,An */ +{ CPUFUNC(op_b0f9_0), 0, 45305 }, /* CMPA.W (xxx).L,An */ +{ CPUFUNC(op_b0fa_0), 0, 45306 }, /* CMPA.W (d16,PC),An */ +{ CPUFUNC(op_b0fb_3), 0, 45307 }, /* CMPA.W (d8,PC,Xn),An */ +{ CPUFUNC(op_b0fc_0), 0, 45308 }, /* CMPA.W #.W,An */ +{ CPUFUNC(op_b100_0), 0, 45312 }, /* EOR.B Dn,Dn */ +{ CPUFUNC(op_b108_0), 0, 45320 }, /* CMPM.B (An)+,(An)+ */ +{ CPUFUNC(op_b110_0), 0, 45328 }, /* EOR.B Dn,(An) */ +{ CPUFUNC(op_b118_0), 0, 45336 }, /* EOR.B Dn,(An)+ */ +{ CPUFUNC(op_b120_0), 0, 45344 }, /* EOR.B Dn,-(An) */ +{ CPUFUNC(op_b128_0), 0, 45352 }, /* EOR.B Dn,(d16,An) */ +{ CPUFUNC(op_b130_3), 0, 45360 }, /* EOR.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b138_0), 0, 45368 }, /* EOR.B Dn,(xxx).W */ +{ CPUFUNC(op_b139_0), 0, 45369 }, /* EOR.B Dn,(xxx).L */ +{ CPUFUNC(op_b140_0), 0, 45376 }, /* EOR.W Dn,Dn */ +{ CPUFUNC(op_b148_0), 0, 45384 }, /* CMPM.W (An)+,(An)+ */ +{ CPUFUNC(op_b150_0), 0, 45392 }, /* EOR.W Dn,(An) */ +{ CPUFUNC(op_b158_0), 0, 45400 }, /* EOR.W Dn,(An)+ */ +{ CPUFUNC(op_b160_0), 0, 45408 }, /* EOR.W Dn,-(An) */ +{ CPUFUNC(op_b168_0), 0, 45416 }, /* EOR.W Dn,(d16,An) */ +{ CPUFUNC(op_b170_3), 0, 45424 }, /* EOR.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b178_0), 0, 45432 }, /* EOR.W Dn,(xxx).W */ +{ CPUFUNC(op_b179_0), 0, 45433 }, /* EOR.W Dn,(xxx).L */ +{ CPUFUNC(op_b180_0), 0, 45440 }, /* EOR.L Dn,Dn */ +{ CPUFUNC(op_b188_0), 0, 45448 }, /* CMPM.L (An)+,(An)+ */ +{ CPUFUNC(op_b190_0), 0, 45456 }, /* EOR.L Dn,(An) */ +{ CPUFUNC(op_b198_0), 0, 45464 }, /* EOR.L Dn,(An)+ */ +{ CPUFUNC(op_b1a0_0), 0, 45472 }, /* EOR.L Dn,-(An) */ +{ CPUFUNC(op_b1a8_0), 0, 45480 }, /* EOR.L Dn,(d16,An) */ +{ CPUFUNC(op_b1b0_3), 0, 45488 }, /* EOR.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_b1b8_0), 0, 45496 }, /* EOR.L Dn,(xxx).W */ +{ CPUFUNC(op_b1b9_0), 0, 45497 }, /* EOR.L Dn,(xxx).L */ +{ CPUFUNC(op_b1c0_0), 0, 45504 }, /* CMPA.L Dn,An */ +{ CPUFUNC(op_b1c8_0), 0, 45512 }, /* CMPA.L An,An */ +{ CPUFUNC(op_b1d0_0), 0, 45520 }, /* CMPA.L (An),An */ +{ CPUFUNC(op_b1d8_0), 0, 45528 }, /* CMPA.L (An)+,An */ +{ CPUFUNC(op_b1e0_0), 0, 45536 }, /* CMPA.L -(An),An */ +{ CPUFUNC(op_b1e8_0), 0, 45544 }, /* CMPA.L (d16,An),An */ +{ CPUFUNC(op_b1f0_3), 0, 45552 }, /* CMPA.L (d8,An,Xn),An */ +{ CPUFUNC(op_b1f8_0), 0, 45560 }, /* CMPA.L (xxx).W,An */ +{ CPUFUNC(op_b1f9_0), 0, 45561 }, /* CMPA.L (xxx).L,An */ +{ CPUFUNC(op_b1fa_0), 0, 45562 }, /* CMPA.L (d16,PC),An */ +{ CPUFUNC(op_b1fb_3), 0, 45563 }, /* CMPA.L (d8,PC,Xn),An */ +{ CPUFUNC(op_b1fc_0), 0, 45564 }, /* CMPA.L #.L,An */ +{ CPUFUNC(op_c000_0), 0, 49152 }, /* AND.B Dn,Dn */ +{ CPUFUNC(op_c010_0), 0, 49168 }, /* AND.B (An),Dn */ +{ CPUFUNC(op_c018_0), 0, 49176 }, /* AND.B (An)+,Dn */ +{ CPUFUNC(op_c020_0), 0, 49184 }, /* AND.B -(An),Dn */ +{ CPUFUNC(op_c028_0), 0, 49192 }, /* AND.B (d16,An),Dn */ +{ CPUFUNC(op_c030_3), 0, 49200 }, /* AND.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_c038_0), 0, 49208 }, /* AND.B (xxx).W,Dn */ +{ CPUFUNC(op_c039_0), 0, 49209 }, /* AND.B (xxx).L,Dn */ +{ CPUFUNC(op_c03a_0), 0, 49210 }, /* AND.B (d16,PC),Dn */ +{ CPUFUNC(op_c03b_3), 0, 49211 }, /* AND.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c03c_0), 0, 49212 }, /* AND.B #.B,Dn */ +{ CPUFUNC(op_c040_0), 0, 49216 }, /* AND.W Dn,Dn */ +{ CPUFUNC(op_c050_0), 0, 49232 }, /* AND.W (An),Dn */ +{ CPUFUNC(op_c058_0), 0, 49240 }, /* AND.W (An)+,Dn */ +{ CPUFUNC(op_c060_0), 0, 49248 }, /* AND.W -(An),Dn */ +{ CPUFUNC(op_c068_0), 0, 49256 }, /* AND.W (d16,An),Dn */ +{ CPUFUNC(op_c070_3), 0, 49264 }, /* AND.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c078_0), 0, 49272 }, /* AND.W (xxx).W,Dn */ +{ CPUFUNC(op_c079_0), 0, 49273 }, /* AND.W (xxx).L,Dn */ +{ CPUFUNC(op_c07a_0), 0, 49274 }, /* AND.W (d16,PC),Dn */ +{ CPUFUNC(op_c07b_3), 0, 49275 }, /* AND.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c07c_0), 0, 49276 }, /* AND.W #.W,Dn */ +{ CPUFUNC(op_c080_0), 0, 49280 }, /* AND.L Dn,Dn */ +{ CPUFUNC(op_c090_0), 0, 49296 }, /* AND.L (An),Dn */ +{ CPUFUNC(op_c098_0), 0, 49304 }, /* AND.L (An)+,Dn */ +{ CPUFUNC(op_c0a0_0), 0, 49312 }, /* AND.L -(An),Dn */ +{ CPUFUNC(op_c0a8_0), 0, 49320 }, /* AND.L (d16,An),Dn */ +{ CPUFUNC(op_c0b0_3), 0, 49328 }, /* AND.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_c0b8_0), 0, 49336 }, /* AND.L (xxx).W,Dn */ +{ CPUFUNC(op_c0b9_0), 0, 49337 }, /* AND.L (xxx).L,Dn */ +{ CPUFUNC(op_c0ba_0), 0, 49338 }, /* AND.L (d16,PC),Dn */ +{ CPUFUNC(op_c0bb_3), 0, 49339 }, /* AND.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c0bc_0), 0, 49340 }, /* AND.L #.L,Dn */ +{ CPUFUNC(op_c0c0_0), 0, 49344 }, /* MULU.W Dn,Dn */ +{ CPUFUNC(op_c0d0_0), 0, 49360 }, /* MULU.W (An),Dn */ +{ CPUFUNC(op_c0d8_0), 0, 49368 }, /* MULU.W (An)+,Dn */ +{ CPUFUNC(op_c0e0_0), 0, 49376 }, /* MULU.W -(An),Dn */ +{ CPUFUNC(op_c0e8_0), 0, 49384 }, /* MULU.W (d16,An),Dn */ +{ CPUFUNC(op_c0f0_3), 0, 49392 }, /* MULU.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c0f8_0), 0, 49400 }, /* MULU.W (xxx).W,Dn */ +{ CPUFUNC(op_c0f9_0), 0, 49401 }, /* MULU.W (xxx).L,Dn */ +{ CPUFUNC(op_c0fa_0), 0, 49402 }, /* MULU.W (d16,PC),Dn */ +{ CPUFUNC(op_c0fb_3), 0, 49403 }, /* MULU.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c0fc_0), 0, 49404 }, /* MULU.W #.W,Dn */ +{ CPUFUNC(op_c100_1), 0, 49408 }, /* ABCD.B Dn,Dn */ +{ CPUFUNC(op_c108_1), 0, 49416 }, /* ABCD.B -(An),-(An) */ +{ CPUFUNC(op_c110_0), 0, 49424 }, /* AND.B Dn,(An) */ +{ CPUFUNC(op_c118_0), 0, 49432 }, /* AND.B Dn,(An)+ */ +{ CPUFUNC(op_c120_0), 0, 49440 }, /* AND.B Dn,-(An) */ +{ CPUFUNC(op_c128_0), 0, 49448 }, /* AND.B Dn,(d16,An) */ +{ CPUFUNC(op_c130_3), 0, 49456 }, /* AND.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c138_0), 0, 49464 }, /* AND.B Dn,(xxx).W */ +{ CPUFUNC(op_c139_0), 0, 49465 }, /* AND.B Dn,(xxx).L */ +{ CPUFUNC_FF(op_c140_0), 0, 49472 }, /* EXG.L Dn,Dn */ +{ CPUFUNC_FF(op_c148_0), 0, 49480 }, /* EXG.L An,An */ +{ CPUFUNC(op_c150_0), 0, 49488 }, /* AND.W Dn,(An) */ +{ CPUFUNC(op_c158_0), 0, 49496 }, /* AND.W Dn,(An)+ */ +{ CPUFUNC(op_c160_0), 0, 49504 }, /* AND.W Dn,-(An) */ +{ CPUFUNC(op_c168_0), 0, 49512 }, /* AND.W Dn,(d16,An) */ +{ CPUFUNC(op_c170_3), 0, 49520 }, /* AND.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c178_0), 0, 49528 }, /* AND.W Dn,(xxx).W */ +{ CPUFUNC(op_c179_0), 0, 49529 }, /* AND.W Dn,(xxx).L */ +{ CPUFUNC_FF(op_c188_0), 0, 49544 }, /* EXG.L Dn,An */ +{ CPUFUNC(op_c190_0), 0, 49552 }, /* AND.L Dn,(An) */ +{ CPUFUNC(op_c198_0), 0, 49560 }, /* AND.L Dn,(An)+ */ +{ CPUFUNC(op_c1a0_0), 0, 49568 }, /* AND.L Dn,-(An) */ +{ CPUFUNC(op_c1a8_0), 0, 49576 }, /* AND.L Dn,(d16,An) */ +{ CPUFUNC(op_c1b0_3), 0, 49584 }, /* AND.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_c1b8_0), 0, 49592 }, /* AND.L Dn,(xxx).W */ +{ CPUFUNC(op_c1b9_0), 0, 49593 }, /* AND.L Dn,(xxx).L */ +{ CPUFUNC(op_c1c0_0), 0, 49600 }, /* MULS.W Dn,Dn */ +{ CPUFUNC(op_c1d0_0), 0, 49616 }, /* MULS.W (An),Dn */ +{ CPUFUNC(op_c1d8_0), 0, 49624 }, /* MULS.W (An)+,Dn */ +{ CPUFUNC(op_c1e0_0), 0, 49632 }, /* MULS.W -(An),Dn */ +{ CPUFUNC(op_c1e8_0), 0, 49640 }, /* MULS.W (d16,An),Dn */ +{ CPUFUNC(op_c1f0_3), 0, 49648 }, /* MULS.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_c1f8_0), 0, 49656 }, /* MULS.W (xxx).W,Dn */ +{ CPUFUNC(op_c1f9_0), 0, 49657 }, /* MULS.W (xxx).L,Dn */ +{ CPUFUNC(op_c1fa_0), 0, 49658 }, /* MULS.W (d16,PC),Dn */ +{ CPUFUNC(op_c1fb_3), 0, 49659 }, /* MULS.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_c1fc_0), 0, 49660 }, /* MULS.W #.W,Dn */ +{ CPUFUNC(op_d000_0), 0, 53248 }, /* ADD.B Dn,Dn */ +{ CPUFUNC(op_d010_0), 0, 53264 }, /* ADD.B (An),Dn */ +{ CPUFUNC(op_d018_0), 0, 53272 }, /* ADD.B (An)+,Dn */ +{ CPUFUNC(op_d020_0), 0, 53280 }, /* ADD.B -(An),Dn */ +{ CPUFUNC(op_d028_0), 0, 53288 }, /* ADD.B (d16,An),Dn */ +{ CPUFUNC(op_d030_3), 0, 53296 }, /* ADD.B (d8,An,Xn),Dn */ +{ CPUFUNC(op_d038_0), 0, 53304 }, /* ADD.B (xxx).W,Dn */ +{ CPUFUNC(op_d039_0), 0, 53305 }, /* ADD.B (xxx).L,Dn */ +{ CPUFUNC(op_d03a_0), 0, 53306 }, /* ADD.B (d16,PC),Dn */ +{ CPUFUNC(op_d03b_3), 0, 53307 }, /* ADD.B (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d03c_0), 0, 53308 }, /* ADD.B #.B,Dn */ +{ CPUFUNC(op_d040_0), 0, 53312 }, /* ADD.W Dn,Dn */ +{ CPUFUNC(op_d048_0), 0, 53320 }, /* ADD.W An,Dn */ +{ CPUFUNC(op_d050_0), 0, 53328 }, /* ADD.W (An),Dn */ +{ CPUFUNC(op_d058_0), 0, 53336 }, /* ADD.W (An)+,Dn */ +{ CPUFUNC(op_d060_0), 0, 53344 }, /* ADD.W -(An),Dn */ +{ CPUFUNC(op_d068_0), 0, 53352 }, /* ADD.W (d16,An),Dn */ +{ CPUFUNC(op_d070_3), 0, 53360 }, /* ADD.W (d8,An,Xn),Dn */ +{ CPUFUNC(op_d078_0), 0, 53368 }, /* ADD.W (xxx).W,Dn */ +{ CPUFUNC(op_d079_0), 0, 53369 }, /* ADD.W (xxx).L,Dn */ +{ CPUFUNC(op_d07a_0), 0, 53370 }, /* ADD.W (d16,PC),Dn */ +{ CPUFUNC(op_d07b_3), 0, 53371 }, /* ADD.W (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d07c_0), 0, 53372 }, /* ADD.W #.W,Dn */ +{ CPUFUNC(op_d080_0), 0, 53376 }, /* ADD.L Dn,Dn */ +{ CPUFUNC(op_d088_0), 0, 53384 }, /* ADD.L An,Dn */ +{ CPUFUNC(op_d090_0), 0, 53392 }, /* ADD.L (An),Dn */ +{ CPUFUNC(op_d098_0), 0, 53400 }, /* ADD.L (An)+,Dn */ +{ CPUFUNC(op_d0a0_0), 0, 53408 }, /* ADD.L -(An),Dn */ +{ CPUFUNC(op_d0a8_0), 0, 53416 }, /* ADD.L (d16,An),Dn */ +{ CPUFUNC(op_d0b0_3), 0, 53424 }, /* ADD.L (d8,An,Xn),Dn */ +{ CPUFUNC(op_d0b8_0), 0, 53432 }, /* ADD.L (xxx).W,Dn */ +{ CPUFUNC(op_d0b9_0), 0, 53433 }, /* ADD.L (xxx).L,Dn */ +{ CPUFUNC(op_d0ba_0), 0, 53434 }, /* ADD.L (d16,PC),Dn */ +{ CPUFUNC(op_d0bb_3), 0, 53435 }, /* ADD.L (d8,PC,Xn),Dn */ +{ CPUFUNC(op_d0bc_0), 0, 53436 }, /* ADD.L #.L,Dn */ +{ CPUFUNC_FF(op_d0c0_0), 0, 53440 }, /* ADDA.W Dn,An */ +{ CPUFUNC_FF(op_d0c8_0), 0, 53448 }, /* ADDA.W An,An */ +{ CPUFUNC_FF(op_d0d0_0), 0, 53456 }, /* ADDA.W (An),An */ +{ CPUFUNC_FF(op_d0d8_0), 0, 53464 }, /* ADDA.W (An)+,An */ +{ CPUFUNC_FF(op_d0e0_0), 0, 53472 }, /* ADDA.W -(An),An */ +{ CPUFUNC_FF(op_d0e8_0), 0, 53480 }, /* ADDA.W (d16,An),An */ +{ CPUFUNC_FF(op_d0f0_3), 0, 53488 }, /* ADDA.W (d8,An,Xn),An */ +{ CPUFUNC_FF(op_d0f8_0), 0, 53496 }, /* ADDA.W (xxx).W,An */ +{ CPUFUNC_FF(op_d0f9_0), 0, 53497 }, /* ADDA.W (xxx).L,An */ +{ CPUFUNC_FF(op_d0fa_0), 0, 53498 }, /* ADDA.W (d16,PC),An */ +{ CPUFUNC_FF(op_d0fb_3), 0, 53499 }, /* ADDA.W (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_d0fc_0), 0, 53500 }, /* ADDA.W #.W,An */ +{ CPUFUNC(op_d100_0), 0, 53504 }, /* ADDX.B Dn,Dn */ +{ CPUFUNC(op_d108_0), 0, 53512 }, /* ADDX.B -(An),-(An) */ +{ CPUFUNC(op_d110_0), 0, 53520 }, /* ADD.B Dn,(An) */ +{ CPUFUNC(op_d118_0), 0, 53528 }, /* ADD.B Dn,(An)+ */ +{ CPUFUNC(op_d120_0), 0, 53536 }, /* ADD.B Dn,-(An) */ +{ CPUFUNC(op_d128_0), 0, 53544 }, /* ADD.B Dn,(d16,An) */ +{ CPUFUNC(op_d130_3), 0, 53552 }, /* ADD.B Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d138_0), 0, 53560 }, /* ADD.B Dn,(xxx).W */ +{ CPUFUNC(op_d139_0), 0, 53561 }, /* ADD.B Dn,(xxx).L */ +{ CPUFUNC(op_d140_0), 0, 53568 }, /* ADDX.W Dn,Dn */ +{ CPUFUNC(op_d148_0), 0, 53576 }, /* ADDX.W -(An),-(An) */ +{ CPUFUNC(op_d150_0), 0, 53584 }, /* ADD.W Dn,(An) */ +{ CPUFUNC(op_d158_0), 0, 53592 }, /* ADD.W Dn,(An)+ */ +{ CPUFUNC(op_d160_0), 0, 53600 }, /* ADD.W Dn,-(An) */ +{ CPUFUNC(op_d168_0), 0, 53608 }, /* ADD.W Dn,(d16,An) */ +{ CPUFUNC(op_d170_3), 0, 53616 }, /* ADD.W Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d178_0), 0, 53624 }, /* ADD.W Dn,(xxx).W */ +{ CPUFUNC(op_d179_0), 0, 53625 }, /* ADD.W Dn,(xxx).L */ +{ CPUFUNC(op_d180_0), 0, 53632 }, /* ADDX.L Dn,Dn */ +{ CPUFUNC(op_d188_0), 0, 53640 }, /* ADDX.L -(An),-(An) */ +{ CPUFUNC(op_d190_0), 0, 53648 }, /* ADD.L Dn,(An) */ +{ CPUFUNC(op_d198_0), 0, 53656 }, /* ADD.L Dn,(An)+ */ +{ CPUFUNC(op_d1a0_0), 0, 53664 }, /* ADD.L Dn,-(An) */ +{ CPUFUNC(op_d1a8_0), 0, 53672 }, /* ADD.L Dn,(d16,An) */ +{ CPUFUNC(op_d1b0_3), 0, 53680 }, /* ADD.L Dn,(d8,An,Xn) */ +{ CPUFUNC(op_d1b8_0), 0, 53688 }, /* ADD.L Dn,(xxx).W */ +{ CPUFUNC(op_d1b9_0), 0, 53689 }, /* ADD.L Dn,(xxx).L */ +{ CPUFUNC_FF(op_d1c0_0), 0, 53696 }, /* ADDA.L Dn,An */ +{ CPUFUNC_FF(op_d1c8_0), 0, 53704 }, /* ADDA.L An,An */ +{ CPUFUNC_FF(op_d1d0_0), 0, 53712 }, /* ADDA.L (An),An */ +{ CPUFUNC_FF(op_d1d8_0), 0, 53720 }, /* ADDA.L (An)+,An */ +{ CPUFUNC_FF(op_d1e0_0), 0, 53728 }, /* ADDA.L -(An),An */ +{ CPUFUNC_FF(op_d1e8_0), 0, 53736 }, /* ADDA.L (d16,An),An */ +{ CPUFUNC_FF(op_d1f0_3), 0, 53744 }, /* ADDA.L (d8,An,Xn),An */ +{ CPUFUNC_FF(op_d1f8_0), 0, 53752 }, /* ADDA.L (xxx).W,An */ +{ CPUFUNC_FF(op_d1f9_0), 0, 53753 }, /* ADDA.L (xxx).L,An */ +{ CPUFUNC_FF(op_d1fa_0), 0, 53754 }, /* ADDA.L (d16,PC),An */ +{ CPUFUNC_FF(op_d1fb_3), 0, 53755 }, /* ADDA.L (d8,PC,Xn),An */ +{ CPUFUNC_FF(op_d1fc_0), 0, 53756 }, /* ADDA.L #.L,An */ +{ CPUFUNC(op_e000_0), 0, 57344 }, /* ASR.B #,Dn */ +{ CPUFUNC(op_e008_0), 0, 57352 }, /* LSR.B #,Dn */ +{ CPUFUNC(op_e010_0), 0, 57360 }, /* ROXR.B #,Dn */ +{ CPUFUNC(op_e018_0), 0, 57368 }, /* ROR.B #,Dn */ +{ CPUFUNC(op_e020_0), 0, 57376 }, /* ASR.B Dn,Dn */ +{ CPUFUNC(op_e028_0), 0, 57384 }, /* LSR.B Dn,Dn */ +{ CPUFUNC(op_e030_0), 0, 57392 }, /* ROXR.B Dn,Dn */ +{ CPUFUNC(op_e038_0), 0, 57400 }, /* ROR.B Dn,Dn */ +{ CPUFUNC(op_e040_0), 0, 57408 }, /* ASR.W #,Dn */ +{ CPUFUNC(op_e048_0), 0, 57416 }, /* LSR.W #,Dn */ +{ CPUFUNC(op_e050_0), 0, 57424 }, /* ROXR.W #,Dn */ +{ CPUFUNC(op_e058_0), 0, 57432 }, /* ROR.W #,Dn */ +{ CPUFUNC(op_e060_0), 0, 57440 }, /* ASR.W Dn,Dn */ +{ CPUFUNC(op_e068_0), 0, 57448 }, /* LSR.W Dn,Dn */ +{ CPUFUNC(op_e070_0), 0, 57456 }, /* ROXR.W Dn,Dn */ +{ CPUFUNC(op_e078_0), 0, 57464 }, /* ROR.W Dn,Dn */ +{ CPUFUNC(op_e080_0), 0, 57472 }, /* ASR.L #,Dn */ +{ CPUFUNC(op_e088_0), 0, 57480 }, /* LSR.L #,Dn */ +{ CPUFUNC(op_e090_0), 0, 57488 }, /* ROXR.L #,Dn */ +{ CPUFUNC(op_e098_0), 0, 57496 }, /* ROR.L #,Dn */ +{ CPUFUNC(op_e0a0_0), 0, 57504 }, /* ASR.L Dn,Dn */ +{ CPUFUNC(op_e0a8_0), 0, 57512 }, /* LSR.L Dn,Dn */ +{ CPUFUNC(op_e0b0_0), 0, 57520 }, /* ROXR.L Dn,Dn */ +{ CPUFUNC(op_e0b8_0), 0, 57528 }, /* ROR.L Dn,Dn */ +{ CPUFUNC(op_e0d0_0), 0, 57552 }, /* ASRW.W (An) */ +{ CPUFUNC(op_e0d8_0), 0, 57560 }, /* ASRW.W (An)+ */ +{ CPUFUNC(op_e0e0_0), 0, 57568 }, /* ASRW.W -(An) */ +{ CPUFUNC(op_e0e8_0), 0, 57576 }, /* ASRW.W (d16,An) */ +{ CPUFUNC(op_e0f0_3), 0, 57584 }, /* ASRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e0f8_0), 0, 57592 }, /* ASRW.W (xxx).W */ +{ CPUFUNC(op_e0f9_0), 0, 57593 }, /* ASRW.W (xxx).L */ +{ CPUFUNC(op_e100_0), 0, 57600 }, /* ASL.B #,Dn */ +{ CPUFUNC(op_e108_0), 0, 57608 }, /* LSL.B #,Dn */ +{ CPUFUNC(op_e110_0), 0, 57616 }, /* ROXL.B #,Dn */ +{ CPUFUNC(op_e118_0), 0, 57624 }, /* ROL.B #,Dn */ +{ CPUFUNC(op_e120_0), 0, 57632 }, /* ASL.B Dn,Dn */ +{ CPUFUNC(op_e128_0), 0, 57640 }, /* LSL.B Dn,Dn */ +{ CPUFUNC(op_e130_0), 0, 57648 }, /* ROXL.B Dn,Dn */ +{ CPUFUNC(op_e138_0), 0, 57656 }, /* ROL.B Dn,Dn */ +{ CPUFUNC(op_e140_0), 0, 57664 }, /* ASL.W #,Dn */ +{ CPUFUNC(op_e148_0), 0, 57672 }, /* LSL.W #,Dn */ +{ CPUFUNC(op_e150_0), 0, 57680 }, /* ROXL.W #,Dn */ +{ CPUFUNC(op_e158_0), 0, 57688 }, /* ROL.W #,Dn */ +{ CPUFUNC(op_e160_0), 0, 57696 }, /* ASL.W Dn,Dn */ +{ CPUFUNC(op_e168_0), 0, 57704 }, /* LSL.W Dn,Dn */ +{ CPUFUNC(op_e170_0), 0, 57712 }, /* ROXL.W Dn,Dn */ +{ CPUFUNC(op_e178_0), 0, 57720 }, /* ROL.W Dn,Dn */ +{ CPUFUNC(op_e180_0), 0, 57728 }, /* ASL.L #,Dn */ +{ CPUFUNC(op_e188_0), 0, 57736 }, /* LSL.L #,Dn */ +{ CPUFUNC(op_e190_0), 0, 57744 }, /* ROXL.L #,Dn */ +{ CPUFUNC(op_e198_0), 0, 57752 }, /* ROL.L #,Dn */ +{ CPUFUNC(op_e1a0_0), 0, 57760 }, /* ASL.L Dn,Dn */ +{ CPUFUNC(op_e1a8_0), 0, 57768 }, /* LSL.L Dn,Dn */ +{ CPUFUNC(op_e1b0_0), 0, 57776 }, /* ROXL.L Dn,Dn */ +{ CPUFUNC(op_e1b8_0), 0, 57784 }, /* ROL.L Dn,Dn */ +{ CPUFUNC(op_e1d0_0), 0, 57808 }, /* ASLW.W (An) */ +{ CPUFUNC(op_e1d8_0), 0, 57816 }, /* ASLW.W (An)+ */ +{ CPUFUNC(op_e1e0_0), 0, 57824 }, /* ASLW.W -(An) */ +{ CPUFUNC(op_e1e8_0), 0, 57832 }, /* ASLW.W (d16,An) */ +{ CPUFUNC(op_e1f0_3), 0, 57840 }, /* ASLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e1f8_0), 0, 57848 }, /* ASLW.W (xxx).W */ +{ CPUFUNC(op_e1f9_0), 0, 57849 }, /* ASLW.W (xxx).L */ +{ CPUFUNC(op_e2d0_0), 0, 58064 }, /* LSRW.W (An) */ +{ CPUFUNC(op_e2d8_0), 0, 58072 }, /* LSRW.W (An)+ */ +{ CPUFUNC(op_e2e0_0), 0, 58080 }, /* LSRW.W -(An) */ +{ CPUFUNC(op_e2e8_0), 0, 58088 }, /* LSRW.W (d16,An) */ +{ CPUFUNC(op_e2f0_3), 0, 58096 }, /* LSRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e2f8_0), 0, 58104 }, /* LSRW.W (xxx).W */ +{ CPUFUNC(op_e2f9_0), 0, 58105 }, /* LSRW.W (xxx).L */ +{ CPUFUNC(op_e3d0_0), 0, 58320 }, /* LSLW.W (An) */ +{ CPUFUNC(op_e3d8_0), 0, 58328 }, /* LSLW.W (An)+ */ +{ CPUFUNC(op_e3e0_0), 0, 58336 }, /* LSLW.W -(An) */ +{ CPUFUNC(op_e3e8_0), 0, 58344 }, /* LSLW.W (d16,An) */ +{ CPUFUNC(op_e3f0_3), 0, 58352 }, /* LSLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e3f8_0), 0, 58360 }, /* LSLW.W (xxx).W */ +{ CPUFUNC(op_e3f9_0), 0, 58361 }, /* LSLW.W (xxx).L */ +{ CPUFUNC(op_e4d0_0), 0, 58576 }, /* ROXRW.W (An) */ +{ CPUFUNC(op_e4d8_0), 0, 58584 }, /* ROXRW.W (An)+ */ +{ CPUFUNC(op_e4e0_0), 0, 58592 }, /* ROXRW.W -(An) */ +{ CPUFUNC(op_e4e8_0), 0, 58600 }, /* ROXRW.W (d16,An) */ +{ CPUFUNC(op_e4f0_3), 0, 58608 }, /* ROXRW.W (d8,An,Xn) */ +{ CPUFUNC(op_e4f8_0), 0, 58616 }, /* ROXRW.W (xxx).W */ +{ CPUFUNC(op_e4f9_0), 0, 58617 }, /* ROXRW.W (xxx).L */ +{ CPUFUNC(op_e5d0_0), 0, 58832 }, /* ROXLW.W (An) */ +{ CPUFUNC(op_e5d8_0), 0, 58840 }, /* ROXLW.W (An)+ */ +{ CPUFUNC(op_e5e0_0), 0, 58848 }, /* ROXLW.W -(An) */ +{ CPUFUNC(op_e5e8_0), 0, 58856 }, /* ROXLW.W (d16,An) */ +{ CPUFUNC(op_e5f0_3), 0, 58864 }, /* ROXLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e5f8_0), 0, 58872 }, /* ROXLW.W (xxx).W */ +{ CPUFUNC(op_e5f9_0), 0, 58873 }, /* ROXLW.W (xxx).L */ +{ CPUFUNC(op_e6d0_0), 0, 59088 }, /* RORW.W (An) */ +{ CPUFUNC(op_e6d8_0), 0, 59096 }, /* RORW.W (An)+ */ +{ CPUFUNC(op_e6e0_0), 0, 59104 }, /* RORW.W -(An) */ +{ CPUFUNC(op_e6e8_0), 0, 59112 }, /* RORW.W (d16,An) */ +{ CPUFUNC(op_e6f0_3), 0, 59120 }, /* RORW.W (d8,An,Xn) */ +{ CPUFUNC(op_e6f8_0), 0, 59128 }, /* RORW.W (xxx).W */ +{ CPUFUNC(op_e6f9_0), 0, 59129 }, /* RORW.W (xxx).L */ +{ CPUFUNC(op_e7d0_0), 0, 59344 }, /* ROLW.W (An) */ +{ CPUFUNC(op_e7d8_0), 0, 59352 }, /* ROLW.W (An)+ */ +{ CPUFUNC(op_e7e0_0), 0, 59360 }, /* ROLW.W -(An) */ +{ CPUFUNC(op_e7e8_0), 0, 59368 }, /* ROLW.W (d16,An) */ +{ CPUFUNC(op_e7f0_3), 0, 59376 }, /* ROLW.W (d8,An,Xn) */ +{ CPUFUNC(op_e7f8_0), 0, 59384 }, /* ROLW.W (xxx).W */ +{ CPUFUNC(op_e7f9_0), 0, 59385 }, /* ROLW.W (xxx).L */ +{ 0, 0, 0 }}; diff --git a/src/PSP2/cputbl.h b/src/PSP2/cputbl.h new file mode 100644 index 0000000..421a51d --- /dev/null +++ b/src/PSP2/cputbl.h @@ -0,0 +1,4322 @@ +extern cpuop_func op_0_0_nf; +extern cpuop_func op_0_0_ff; +extern cpuop_func op_10_0_nf; +extern cpuop_func op_10_0_ff; +extern cpuop_func op_18_0_nf; +extern cpuop_func op_18_0_ff; +extern cpuop_func op_20_0_nf; +extern cpuop_func op_20_0_ff; +extern cpuop_func op_28_0_nf; +extern cpuop_func op_28_0_ff; +extern cpuop_func op_30_0_nf; +extern cpuop_func op_30_0_ff; +extern cpuop_func op_38_0_nf; +extern cpuop_func op_38_0_ff; +extern cpuop_func op_39_0_nf; +extern cpuop_func op_39_0_ff; +extern cpuop_func op_3c_0_nf; +extern cpuop_func op_3c_0_ff; +extern cpuop_func op_40_0_nf; +extern cpuop_func op_40_0_ff; +extern cpuop_func op_50_0_nf; +extern cpuop_func op_50_0_ff; +extern cpuop_func op_58_0_nf; +extern cpuop_func op_58_0_ff; +extern cpuop_func op_60_0_nf; +extern cpuop_func op_60_0_ff; +extern cpuop_func op_68_0_nf; +extern cpuop_func op_68_0_ff; +extern cpuop_func op_70_0_nf; +extern cpuop_func op_70_0_ff; +extern cpuop_func op_78_0_nf; +extern cpuop_func op_78_0_ff; +extern cpuop_func op_79_0_nf; +extern cpuop_func op_79_0_ff; +extern cpuop_func op_7c_0_nf; +extern cpuop_func op_7c_0_ff; +extern cpuop_func op_80_0_nf; +extern cpuop_func op_80_0_ff; +extern cpuop_func op_90_0_nf; +extern cpuop_func op_90_0_ff; +extern cpuop_func op_98_0_nf; +extern cpuop_func op_98_0_ff; +extern cpuop_func op_a0_0_nf; +extern cpuop_func op_a0_0_ff; +extern cpuop_func op_a8_0_nf; +extern cpuop_func op_a8_0_ff; +extern cpuop_func op_b0_0_nf; +extern cpuop_func op_b0_0_ff; +extern cpuop_func op_b8_0_nf; +extern cpuop_func op_b8_0_ff; +extern cpuop_func op_b9_0_nf; +extern cpuop_func op_b9_0_ff; +extern cpuop_func op_d0_0_nf; +extern cpuop_func op_d0_0_ff; +extern cpuop_func op_e8_0_nf; +extern cpuop_func op_e8_0_ff; +extern cpuop_func op_f0_0_nf; +extern cpuop_func op_f0_0_ff; +extern cpuop_func op_f8_0_nf; +extern cpuop_func op_f8_0_ff; +extern cpuop_func op_f9_0_nf; +extern cpuop_func op_f9_0_ff; +extern cpuop_func op_fa_0_nf; +extern cpuop_func op_fa_0_ff; +extern cpuop_func op_fb_0_nf; +extern cpuop_func op_fb_0_ff; +extern cpuop_func op_100_0_nf; +extern cpuop_func op_100_0_ff; +extern cpuop_func op_108_0_nf; +extern cpuop_func op_108_0_ff; +extern cpuop_func op_110_0_nf; +extern cpuop_func op_110_0_ff; +extern cpuop_func op_118_0_nf; +extern cpuop_func op_118_0_ff; +extern cpuop_func op_120_0_nf; +extern cpuop_func op_120_0_ff; +extern cpuop_func op_128_0_nf; +extern cpuop_func op_128_0_ff; +extern cpuop_func op_130_0_nf; +extern cpuop_func op_130_0_ff; +extern cpuop_func op_138_0_nf; +extern cpuop_func op_138_0_ff; +extern cpuop_func op_139_0_nf; +extern cpuop_func op_139_0_ff; +extern cpuop_func op_13a_0_nf; +extern cpuop_func op_13a_0_ff; +extern cpuop_func op_13b_0_nf; +extern cpuop_func op_13b_0_ff; +extern cpuop_func op_13c_0_nf; +extern cpuop_func op_13c_0_ff; +extern cpuop_func op_140_0_nf; +extern cpuop_func op_140_0_ff; +extern cpuop_func op_148_0_nf; +extern cpuop_func op_148_0_ff; +extern cpuop_func op_150_0_nf; +extern cpuop_func op_150_0_ff; +extern cpuop_func op_158_0_nf; +extern cpuop_func op_158_0_ff; +extern cpuop_func op_160_0_nf; +extern cpuop_func op_160_0_ff; +extern cpuop_func op_168_0_nf; +extern cpuop_func op_168_0_ff; +extern cpuop_func op_170_0_nf; +extern cpuop_func op_170_0_ff; +extern cpuop_func op_178_0_nf; +extern cpuop_func op_178_0_ff; +extern cpuop_func op_179_0_nf; +extern cpuop_func op_179_0_ff; +extern cpuop_func op_17a_0_nf; +extern cpuop_func op_17a_0_ff; +extern cpuop_func op_17b_0_nf; +extern cpuop_func op_17b_0_ff; +extern cpuop_func op_180_0_nf; +extern cpuop_func op_180_0_ff; +extern cpuop_func op_188_0_nf; +extern cpuop_func op_188_0_ff; +extern cpuop_func op_190_0_nf; +extern cpuop_func op_190_0_ff; +extern cpuop_func op_198_0_nf; +extern cpuop_func op_198_0_ff; +extern cpuop_func op_1a0_0_nf; +extern cpuop_func op_1a0_0_ff; +extern cpuop_func op_1a8_0_nf; +extern cpuop_func op_1a8_0_ff; +extern cpuop_func op_1b0_0_nf; +extern cpuop_func op_1b0_0_ff; +extern cpuop_func op_1b8_0_nf; +extern cpuop_func op_1b8_0_ff; +extern cpuop_func op_1b9_0_nf; +extern cpuop_func op_1b9_0_ff; +extern cpuop_func op_1ba_0_nf; +extern cpuop_func op_1ba_0_ff; +extern cpuop_func op_1bb_0_nf; +extern cpuop_func op_1bb_0_ff; +extern cpuop_func op_1c0_0_nf; +extern cpuop_func op_1c0_0_ff; +extern cpuop_func op_1c8_0_nf; +extern cpuop_func op_1c8_0_ff; +extern cpuop_func op_1d0_0_nf; +extern cpuop_func op_1d0_0_ff; +extern cpuop_func op_1d8_0_nf; +extern cpuop_func op_1d8_0_ff; +extern cpuop_func op_1e0_0_nf; +extern cpuop_func op_1e0_0_ff; +extern cpuop_func op_1e8_0_nf; +extern cpuop_func op_1e8_0_ff; +extern cpuop_func op_1f0_0_nf; +extern cpuop_func op_1f0_0_ff; +extern cpuop_func op_1f8_0_nf; +extern cpuop_func op_1f8_0_ff; +extern cpuop_func op_1f9_0_nf; +extern cpuop_func op_1f9_0_ff; +extern cpuop_func op_1fa_0_nf; +extern cpuop_func op_1fa_0_ff; +extern cpuop_func op_1fb_0_nf; +extern cpuop_func op_1fb_0_ff; +extern cpuop_func op_200_0_nf; +extern cpuop_func op_200_0_ff; +extern cpuop_func op_210_0_nf; +extern cpuop_func op_210_0_ff; +extern cpuop_func op_218_0_nf; +extern cpuop_func op_218_0_ff; +extern cpuop_func op_220_0_nf; +extern cpuop_func op_220_0_ff; +extern cpuop_func op_228_0_nf; +extern cpuop_func op_228_0_ff; +extern cpuop_func op_230_0_nf; +extern cpuop_func op_230_0_ff; +extern cpuop_func op_238_0_nf; +extern cpuop_func op_238_0_ff; +extern cpuop_func op_239_0_nf; +extern cpuop_func op_239_0_ff; +extern cpuop_func op_23c_0_nf; +extern cpuop_func op_23c_0_ff; +extern cpuop_func op_240_0_nf; +extern cpuop_func op_240_0_ff; +extern cpuop_func op_250_0_nf; +extern cpuop_func op_250_0_ff; +extern cpuop_func op_258_0_nf; +extern cpuop_func op_258_0_ff; +extern cpuop_func op_260_0_nf; +extern cpuop_func op_260_0_ff; +extern cpuop_func op_268_0_nf; +extern cpuop_func op_268_0_ff; +extern cpuop_func op_270_0_nf; +extern cpuop_func op_270_0_ff; +extern cpuop_func op_278_0_nf; +extern cpuop_func op_278_0_ff; +extern cpuop_func op_279_0_nf; +extern cpuop_func op_279_0_ff; +extern cpuop_func op_27c_0_nf; +extern cpuop_func op_27c_0_ff; +extern cpuop_func op_280_0_nf; +extern cpuop_func op_280_0_ff; +extern cpuop_func op_290_0_nf; +extern cpuop_func op_290_0_ff; +extern cpuop_func op_298_0_nf; +extern cpuop_func op_298_0_ff; +extern cpuop_func op_2a0_0_nf; +extern cpuop_func op_2a0_0_ff; +extern cpuop_func op_2a8_0_nf; +extern cpuop_func op_2a8_0_ff; +extern cpuop_func op_2b0_0_nf; +extern cpuop_func op_2b0_0_ff; +extern cpuop_func op_2b8_0_nf; +extern cpuop_func op_2b8_0_ff; +extern cpuop_func op_2b9_0_nf; +extern cpuop_func op_2b9_0_ff; +extern cpuop_func op_2d0_0_nf; +extern cpuop_func op_2d0_0_ff; +extern cpuop_func op_2e8_0_nf; +extern cpuop_func op_2e8_0_ff; +extern cpuop_func op_2f0_0_nf; +extern cpuop_func op_2f0_0_ff; +extern cpuop_func op_2f8_0_nf; +extern cpuop_func op_2f8_0_ff; +extern cpuop_func op_2f9_0_nf; +extern cpuop_func op_2f9_0_ff; +extern cpuop_func op_2fa_0_nf; +extern cpuop_func op_2fa_0_ff; +extern cpuop_func op_2fb_0_nf; +extern cpuop_func op_2fb_0_ff; +extern cpuop_func op_400_0_nf; +extern cpuop_func op_400_0_ff; +extern cpuop_func op_410_0_nf; +extern cpuop_func op_410_0_ff; +extern cpuop_func op_418_0_nf; +extern cpuop_func op_418_0_ff; +extern cpuop_func op_420_0_nf; +extern cpuop_func op_420_0_ff; +extern cpuop_func op_428_0_nf; +extern cpuop_func op_428_0_ff; +extern cpuop_func op_430_0_nf; +extern cpuop_func op_430_0_ff; +extern cpuop_func op_438_0_nf; +extern cpuop_func op_438_0_ff; +extern cpuop_func op_439_0_nf; +extern cpuop_func op_439_0_ff; +extern cpuop_func op_440_0_nf; +extern cpuop_func op_440_0_ff; +extern cpuop_func op_450_0_nf; +extern cpuop_func op_450_0_ff; +extern cpuop_func op_458_0_nf; +extern cpuop_func op_458_0_ff; +extern cpuop_func op_460_0_nf; +extern cpuop_func op_460_0_ff; +extern cpuop_func op_468_0_nf; +extern cpuop_func op_468_0_ff; +extern cpuop_func op_470_0_nf; +extern cpuop_func op_470_0_ff; +extern cpuop_func op_478_0_nf; +extern cpuop_func op_478_0_ff; +extern cpuop_func op_479_0_nf; +extern cpuop_func op_479_0_ff; +extern cpuop_func op_480_0_nf; +extern cpuop_func op_480_0_ff; +extern cpuop_func op_490_0_nf; +extern cpuop_func op_490_0_ff; +extern cpuop_func op_498_0_nf; +extern cpuop_func op_498_0_ff; +extern cpuop_func op_4a0_0_nf; +extern cpuop_func op_4a0_0_ff; +extern cpuop_func op_4a8_0_nf; +extern cpuop_func op_4a8_0_ff; +extern cpuop_func op_4b0_0_nf; +extern cpuop_func op_4b0_0_ff; +extern cpuop_func op_4b8_0_nf; +extern cpuop_func op_4b8_0_ff; +extern cpuop_func op_4b9_0_nf; +extern cpuop_func op_4b9_0_ff; +extern cpuop_func op_4d0_0_nf; +extern cpuop_func op_4d0_0_ff; +extern cpuop_func op_4e8_0_nf; +extern cpuop_func op_4e8_0_ff; +extern cpuop_func op_4f0_0_nf; +extern cpuop_func op_4f0_0_ff; +extern cpuop_func op_4f8_0_nf; +extern cpuop_func op_4f8_0_ff; +extern cpuop_func op_4f9_0_nf; +extern cpuop_func op_4f9_0_ff; +extern cpuop_func op_4fa_0_nf; +extern cpuop_func op_4fa_0_ff; +extern cpuop_func op_4fb_0_nf; +extern cpuop_func op_4fb_0_ff; +extern cpuop_func op_600_0_nf; +extern cpuop_func op_600_0_ff; +extern cpuop_func op_610_0_nf; +extern cpuop_func op_610_0_ff; +extern cpuop_func op_618_0_nf; +extern cpuop_func op_618_0_ff; +extern cpuop_func op_620_0_nf; +extern cpuop_func op_620_0_ff; +extern cpuop_func op_628_0_nf; +extern cpuop_func op_628_0_ff; +extern cpuop_func op_630_0_nf; +extern cpuop_func op_630_0_ff; +extern cpuop_func op_638_0_nf; +extern cpuop_func op_638_0_ff; +extern cpuop_func op_639_0_nf; +extern cpuop_func op_639_0_ff; +extern cpuop_func op_640_0_nf; +extern cpuop_func op_640_0_ff; +extern cpuop_func op_650_0_nf; +extern cpuop_func op_650_0_ff; +extern cpuop_func op_658_0_nf; +extern cpuop_func op_658_0_ff; +extern cpuop_func op_660_0_nf; +extern cpuop_func op_660_0_ff; +extern cpuop_func op_668_0_nf; +extern cpuop_func op_668_0_ff; +extern cpuop_func op_670_0_nf; +extern cpuop_func op_670_0_ff; +extern cpuop_func op_678_0_nf; +extern cpuop_func op_678_0_ff; +extern cpuop_func op_679_0_nf; +extern cpuop_func op_679_0_ff; +extern cpuop_func op_680_0_nf; +extern cpuop_func op_680_0_ff; +extern cpuop_func op_690_0_nf; +extern cpuop_func op_690_0_ff; +extern cpuop_func op_698_0_nf; +extern cpuop_func op_698_0_ff; +extern cpuop_func op_6a0_0_nf; +extern cpuop_func op_6a0_0_ff; +extern cpuop_func op_6a8_0_nf; +extern cpuop_func op_6a8_0_ff; +extern cpuop_func op_6b0_0_nf; +extern cpuop_func op_6b0_0_ff; +extern cpuop_func op_6b8_0_nf; +extern cpuop_func op_6b8_0_ff; +extern cpuop_func op_6b9_0_nf; +extern cpuop_func op_6b9_0_ff; +extern cpuop_func op_6c0_0_nf; +extern cpuop_func op_6c0_0_ff; +extern cpuop_func op_6c8_0_nf; +extern cpuop_func op_6c8_0_ff; +extern cpuop_func op_6d0_0_nf; +extern cpuop_func op_6d0_0_ff; +extern cpuop_func op_6e8_0_nf; +extern cpuop_func op_6e8_0_ff; +extern cpuop_func op_6f0_0_nf; +extern cpuop_func op_6f0_0_ff; +extern cpuop_func op_6f8_0_nf; +extern cpuop_func op_6f8_0_ff; +extern cpuop_func op_6f9_0_nf; +extern cpuop_func op_6f9_0_ff; +extern cpuop_func op_6fa_0_nf; +extern cpuop_func op_6fa_0_ff; +extern cpuop_func op_6fb_0_nf; +extern cpuop_func op_6fb_0_ff; +extern cpuop_func op_800_0_nf; +extern cpuop_func op_800_0_ff; +extern cpuop_func op_810_0_nf; +extern cpuop_func op_810_0_ff; +extern cpuop_func op_818_0_nf; +extern cpuop_func op_818_0_ff; +extern cpuop_func op_820_0_nf; +extern cpuop_func op_820_0_ff; +extern cpuop_func op_828_0_nf; +extern cpuop_func op_828_0_ff; +extern cpuop_func op_830_0_nf; +extern cpuop_func op_830_0_ff; +extern cpuop_func op_838_0_nf; +extern cpuop_func op_838_0_ff; +extern cpuop_func op_839_0_nf; +extern cpuop_func op_839_0_ff; +extern cpuop_func op_83a_0_nf; +extern cpuop_func op_83a_0_ff; +extern cpuop_func op_83b_0_nf; +extern cpuop_func op_83b_0_ff; +extern cpuop_func op_83c_0_nf; +extern cpuop_func op_83c_0_ff; +extern cpuop_func op_840_0_nf; +extern cpuop_func op_840_0_ff; +extern cpuop_func op_850_0_nf; +extern cpuop_func op_850_0_ff; +extern cpuop_func op_858_0_nf; +extern cpuop_func op_858_0_ff; +extern cpuop_func op_860_0_nf; +extern cpuop_func op_860_0_ff; +extern cpuop_func op_868_0_nf; +extern cpuop_func op_868_0_ff; +extern cpuop_func op_870_0_nf; +extern cpuop_func op_870_0_ff; +extern cpuop_func op_878_0_nf; +extern cpuop_func op_878_0_ff; +extern cpuop_func op_879_0_nf; +extern cpuop_func op_879_0_ff; +extern cpuop_func op_87a_0_nf; +extern cpuop_func op_87a_0_ff; +extern cpuop_func op_87b_0_nf; +extern cpuop_func op_87b_0_ff; +extern cpuop_func op_880_0_nf; +extern cpuop_func op_880_0_ff; +extern cpuop_func op_890_0_nf; +extern cpuop_func op_890_0_ff; +extern cpuop_func op_898_0_nf; +extern cpuop_func op_898_0_ff; +extern cpuop_func op_8a0_0_nf; +extern cpuop_func op_8a0_0_ff; +extern cpuop_func op_8a8_0_nf; +extern cpuop_func op_8a8_0_ff; +extern cpuop_func op_8b0_0_nf; +extern cpuop_func op_8b0_0_ff; +extern cpuop_func op_8b8_0_nf; +extern cpuop_func op_8b8_0_ff; +extern cpuop_func op_8b9_0_nf; +extern cpuop_func op_8b9_0_ff; +extern cpuop_func op_8ba_0_nf; +extern cpuop_func op_8ba_0_ff; +extern cpuop_func op_8bb_0_nf; +extern cpuop_func op_8bb_0_ff; +extern cpuop_func op_8c0_0_nf; +extern cpuop_func op_8c0_0_ff; +extern cpuop_func op_8d0_0_nf; +extern cpuop_func op_8d0_0_ff; +extern cpuop_func op_8d8_0_nf; +extern cpuop_func op_8d8_0_ff; +extern cpuop_func op_8e0_0_nf; +extern cpuop_func op_8e0_0_ff; +extern cpuop_func op_8e8_0_nf; +extern cpuop_func op_8e8_0_ff; +extern cpuop_func op_8f0_0_nf; +extern cpuop_func op_8f0_0_ff; +extern cpuop_func op_8f8_0_nf; +extern cpuop_func op_8f8_0_ff; +extern cpuop_func op_8f9_0_nf; +extern cpuop_func op_8f9_0_ff; +extern cpuop_func op_8fa_0_nf; +extern cpuop_func op_8fa_0_ff; +extern cpuop_func op_8fb_0_nf; +extern cpuop_func op_8fb_0_ff; +extern cpuop_func op_a00_0_nf; +extern cpuop_func op_a00_0_ff; +extern cpuop_func op_a10_0_nf; +extern cpuop_func op_a10_0_ff; +extern cpuop_func op_a18_0_nf; +extern cpuop_func op_a18_0_ff; +extern cpuop_func op_a20_0_nf; +extern cpuop_func op_a20_0_ff; +extern cpuop_func op_a28_0_nf; +extern cpuop_func op_a28_0_ff; +extern cpuop_func op_a30_0_nf; +extern cpuop_func op_a30_0_ff; +extern cpuop_func op_a38_0_nf; +extern cpuop_func op_a38_0_ff; +extern cpuop_func op_a39_0_nf; +extern cpuop_func op_a39_0_ff; +extern cpuop_func op_a3c_0_nf; +extern cpuop_func op_a3c_0_ff; +extern cpuop_func op_a40_0_nf; +extern cpuop_func op_a40_0_ff; +extern cpuop_func op_a50_0_nf; +extern cpuop_func op_a50_0_ff; +extern cpuop_func op_a58_0_nf; +extern cpuop_func op_a58_0_ff; +extern cpuop_func op_a60_0_nf; +extern cpuop_func op_a60_0_ff; +extern cpuop_func op_a68_0_nf; +extern cpuop_func op_a68_0_ff; +extern cpuop_func op_a70_0_nf; +extern cpuop_func op_a70_0_ff; +extern cpuop_func op_a78_0_nf; +extern cpuop_func op_a78_0_ff; +extern cpuop_func op_a79_0_nf; +extern cpuop_func op_a79_0_ff; +extern cpuop_func op_a7c_0_nf; +extern cpuop_func op_a7c_0_ff; +extern cpuop_func op_a80_0_nf; +extern cpuop_func op_a80_0_ff; +extern cpuop_func op_a90_0_nf; +extern cpuop_func op_a90_0_ff; +extern cpuop_func op_a98_0_nf; +extern cpuop_func op_a98_0_ff; +extern cpuop_func op_aa0_0_nf; +extern cpuop_func op_aa0_0_ff; +extern cpuop_func op_aa8_0_nf; +extern cpuop_func op_aa8_0_ff; +extern cpuop_func op_ab0_0_nf; +extern cpuop_func op_ab0_0_ff; +extern cpuop_func op_ab8_0_nf; +extern cpuop_func op_ab8_0_ff; +extern cpuop_func op_ab9_0_nf; +extern cpuop_func op_ab9_0_ff; +extern cpuop_func op_ad0_0_nf; +extern cpuop_func op_ad0_0_ff; +extern cpuop_func op_ad8_0_nf; +extern cpuop_func op_ad8_0_ff; +extern cpuop_func op_ae0_0_nf; +extern cpuop_func op_ae0_0_ff; +extern cpuop_func op_ae8_0_nf; +extern cpuop_func op_ae8_0_ff; +extern cpuop_func op_af0_0_nf; +extern cpuop_func op_af0_0_ff; +extern cpuop_func op_af8_0_nf; +extern cpuop_func op_af8_0_ff; +extern cpuop_func op_af9_0_nf; +extern cpuop_func op_af9_0_ff; +extern cpuop_func op_c00_0_nf; +extern cpuop_func op_c00_0_ff; +extern cpuop_func op_c10_0_nf; +extern cpuop_func op_c10_0_ff; +extern cpuop_func op_c18_0_nf; +extern cpuop_func op_c18_0_ff; +extern cpuop_func op_c20_0_nf; +extern cpuop_func op_c20_0_ff; +extern cpuop_func op_c28_0_nf; +extern cpuop_func op_c28_0_ff; +extern cpuop_func op_c30_0_nf; +extern cpuop_func op_c30_0_ff; +extern cpuop_func op_c38_0_nf; +extern cpuop_func op_c38_0_ff; +extern cpuop_func op_c39_0_nf; +extern cpuop_func op_c39_0_ff; +extern cpuop_func op_c3a_0_nf; +extern cpuop_func op_c3a_0_ff; +extern cpuop_func op_c3b_0_nf; +extern cpuop_func op_c3b_0_ff; +extern cpuop_func op_c40_0_nf; +extern cpuop_func op_c40_0_ff; +extern cpuop_func op_c50_0_nf; +extern cpuop_func op_c50_0_ff; +extern cpuop_func op_c58_0_nf; +extern cpuop_func op_c58_0_ff; +extern cpuop_func op_c60_0_nf; +extern cpuop_func op_c60_0_ff; +extern cpuop_func op_c68_0_nf; +extern cpuop_func op_c68_0_ff; +extern cpuop_func op_c70_0_nf; +extern cpuop_func op_c70_0_ff; +extern cpuop_func op_c78_0_nf; +extern cpuop_func op_c78_0_ff; +extern cpuop_func op_c79_0_nf; +extern cpuop_func op_c79_0_ff; +extern cpuop_func op_c7a_0_nf; +extern cpuop_func op_c7a_0_ff; +extern cpuop_func op_c7b_0_nf; +extern cpuop_func op_c7b_0_ff; +extern cpuop_func op_c80_0_nf; +extern cpuop_func op_c80_0_ff; +extern cpuop_func op_c90_0_nf; +extern cpuop_func op_c90_0_ff; +extern cpuop_func op_c98_0_nf; +extern cpuop_func op_c98_0_ff; +extern cpuop_func op_ca0_0_nf; +extern cpuop_func op_ca0_0_ff; +extern cpuop_func op_ca8_0_nf; +extern cpuop_func op_ca8_0_ff; +extern cpuop_func op_cb0_0_nf; +extern cpuop_func op_cb0_0_ff; +extern cpuop_func op_cb8_0_nf; +extern cpuop_func op_cb8_0_ff; +extern cpuop_func op_cb9_0_nf; +extern cpuop_func op_cb9_0_ff; +extern cpuop_func op_cba_0_nf; +extern cpuop_func op_cba_0_ff; +extern cpuop_func op_cbb_0_nf; +extern cpuop_func op_cbb_0_ff; +extern cpuop_func op_cd0_0_nf; +extern cpuop_func op_cd0_0_ff; +extern cpuop_func op_cd8_0_nf; +extern cpuop_func op_cd8_0_ff; +extern cpuop_func op_ce0_0_nf; +extern cpuop_func op_ce0_0_ff; +extern cpuop_func op_ce8_0_nf; +extern cpuop_func op_ce8_0_ff; +extern cpuop_func op_cf0_0_nf; +extern cpuop_func op_cf0_0_ff; +extern cpuop_func op_cf8_0_nf; +extern cpuop_func op_cf8_0_ff; +extern cpuop_func op_cf9_0_nf; +extern cpuop_func op_cf9_0_ff; +extern cpuop_func op_cfc_0_nf; +extern cpuop_func op_cfc_0_ff; +extern cpuop_func op_e10_0_nf; +extern cpuop_func op_e10_0_ff; +extern cpuop_func op_e18_0_nf; +extern cpuop_func op_e18_0_ff; +extern cpuop_func op_e20_0_nf; +extern cpuop_func op_e20_0_ff; +extern cpuop_func op_e28_0_nf; +extern cpuop_func op_e28_0_ff; +extern cpuop_func op_e30_0_nf; +extern cpuop_func op_e30_0_ff; +extern cpuop_func op_e38_0_nf; +extern cpuop_func op_e38_0_ff; +extern cpuop_func op_e39_0_nf; +extern cpuop_func op_e39_0_ff; +extern cpuop_func op_e50_0_nf; +extern cpuop_func op_e50_0_ff; +extern cpuop_func op_e58_0_nf; +extern cpuop_func op_e58_0_ff; +extern cpuop_func op_e60_0_nf; +extern cpuop_func op_e60_0_ff; +extern cpuop_func op_e68_0_nf; +extern cpuop_func op_e68_0_ff; +extern cpuop_func op_e70_0_nf; +extern cpuop_func op_e70_0_ff; +extern cpuop_func op_e78_0_nf; +extern cpuop_func op_e78_0_ff; +extern cpuop_func op_e79_0_nf; +extern cpuop_func op_e79_0_ff; +extern cpuop_func op_e90_0_nf; +extern cpuop_func op_e90_0_ff; +extern cpuop_func op_e98_0_nf; +extern cpuop_func op_e98_0_ff; +extern cpuop_func op_ea0_0_nf; +extern cpuop_func op_ea0_0_ff; +extern cpuop_func op_ea8_0_nf; +extern cpuop_func op_ea8_0_ff; +extern cpuop_func op_eb0_0_nf; +extern cpuop_func op_eb0_0_ff; +extern cpuop_func op_eb8_0_nf; +extern cpuop_func op_eb8_0_ff; +extern cpuop_func op_eb9_0_nf; +extern cpuop_func op_eb9_0_ff; +extern cpuop_func op_ed0_0_nf; +extern cpuop_func op_ed0_0_ff; +extern cpuop_func op_ed8_0_nf; +extern cpuop_func op_ed8_0_ff; +extern cpuop_func op_ee0_0_nf; +extern cpuop_func op_ee0_0_ff; +extern cpuop_func op_ee8_0_nf; +extern cpuop_func op_ee8_0_ff; +extern cpuop_func op_ef0_0_nf; +extern cpuop_func op_ef0_0_ff; +extern cpuop_func op_ef8_0_nf; +extern cpuop_func op_ef8_0_ff; +extern cpuop_func op_ef9_0_nf; +extern cpuop_func op_ef9_0_ff; +extern cpuop_func op_efc_0_nf; +extern cpuop_func op_efc_0_ff; +extern cpuop_func op_1000_0_nf; +extern cpuop_func op_1000_0_ff; +extern cpuop_func op_1010_0_nf; +extern cpuop_func op_1010_0_ff; +extern cpuop_func op_1018_0_nf; +extern cpuop_func op_1018_0_ff; +extern cpuop_func op_1020_0_nf; +extern cpuop_func op_1020_0_ff; +extern cpuop_func op_1028_0_nf; +extern cpuop_func op_1028_0_ff; +extern cpuop_func op_1030_0_nf; +extern cpuop_func op_1030_0_ff; +extern cpuop_func op_1038_0_nf; +extern cpuop_func op_1038_0_ff; +extern cpuop_func op_1039_0_nf; +extern cpuop_func op_1039_0_ff; +extern cpuop_func op_103a_0_nf; +extern cpuop_func op_103a_0_ff; +extern cpuop_func op_103b_0_nf; +extern cpuop_func op_103b_0_ff; +extern cpuop_func op_103c_0_nf; +extern cpuop_func op_103c_0_ff; +extern cpuop_func op_1080_0_nf; +extern cpuop_func op_1080_0_ff; +extern cpuop_func op_1090_0_nf; +extern cpuop_func op_1090_0_ff; +extern cpuop_func op_1098_0_nf; +extern cpuop_func op_1098_0_ff; +extern cpuop_func op_10a0_0_nf; +extern cpuop_func op_10a0_0_ff; +extern cpuop_func op_10a8_0_nf; +extern cpuop_func op_10a8_0_ff; +extern cpuop_func op_10b0_0_nf; +extern cpuop_func op_10b0_0_ff; +extern cpuop_func op_10b8_0_nf; +extern cpuop_func op_10b8_0_ff; +extern cpuop_func op_10b9_0_nf; +extern cpuop_func op_10b9_0_ff; +extern cpuop_func op_10ba_0_nf; +extern cpuop_func op_10ba_0_ff; +extern cpuop_func op_10bb_0_nf; +extern cpuop_func op_10bb_0_ff; +extern cpuop_func op_10bc_0_nf; +extern cpuop_func op_10bc_0_ff; +extern cpuop_func op_10c0_0_nf; +extern cpuop_func op_10c0_0_ff; +extern cpuop_func op_10d0_0_nf; +extern cpuop_func op_10d0_0_ff; +extern cpuop_func op_10d8_0_nf; +extern cpuop_func op_10d8_0_ff; +extern cpuop_func op_10e0_0_nf; +extern cpuop_func op_10e0_0_ff; +extern cpuop_func op_10e8_0_nf; +extern cpuop_func op_10e8_0_ff; +extern cpuop_func op_10f0_0_nf; +extern cpuop_func op_10f0_0_ff; +extern cpuop_func op_10f8_0_nf; +extern cpuop_func op_10f8_0_ff; +extern cpuop_func op_10f9_0_nf; +extern cpuop_func op_10f9_0_ff; +extern cpuop_func op_10fa_0_nf; +extern cpuop_func op_10fa_0_ff; +extern cpuop_func op_10fb_0_nf; +extern cpuop_func op_10fb_0_ff; +extern cpuop_func op_10fc_0_nf; +extern cpuop_func op_10fc_0_ff; +extern cpuop_func op_1100_0_nf; +extern cpuop_func op_1100_0_ff; +extern cpuop_func op_1110_0_nf; +extern cpuop_func op_1110_0_ff; +extern cpuop_func op_1118_0_nf; +extern cpuop_func op_1118_0_ff; +extern cpuop_func op_1120_0_nf; +extern cpuop_func op_1120_0_ff; +extern cpuop_func op_1128_0_nf; +extern cpuop_func op_1128_0_ff; +extern cpuop_func op_1130_0_nf; +extern cpuop_func op_1130_0_ff; +extern cpuop_func op_1138_0_nf; +extern cpuop_func op_1138_0_ff; +extern cpuop_func op_1139_0_nf; +extern cpuop_func op_1139_0_ff; +extern cpuop_func op_113a_0_nf; +extern cpuop_func op_113a_0_ff; +extern cpuop_func op_113b_0_nf; +extern cpuop_func op_113b_0_ff; +extern cpuop_func op_113c_0_nf; +extern cpuop_func op_113c_0_ff; +extern cpuop_func op_1140_0_nf; +extern cpuop_func op_1140_0_ff; +extern cpuop_func op_1150_0_nf; +extern cpuop_func op_1150_0_ff; +extern cpuop_func op_1158_0_nf; +extern cpuop_func op_1158_0_ff; +extern cpuop_func op_1160_0_nf; +extern cpuop_func op_1160_0_ff; +extern cpuop_func op_1168_0_nf; +extern cpuop_func op_1168_0_ff; +extern cpuop_func op_1170_0_nf; +extern cpuop_func op_1170_0_ff; +extern cpuop_func op_1178_0_nf; +extern cpuop_func op_1178_0_ff; +extern cpuop_func op_1179_0_nf; +extern cpuop_func op_1179_0_ff; +extern cpuop_func op_117a_0_nf; +extern cpuop_func op_117a_0_ff; +extern cpuop_func op_117b_0_nf; +extern cpuop_func op_117b_0_ff; +extern cpuop_func op_117c_0_nf; +extern cpuop_func op_117c_0_ff; +extern cpuop_func op_1180_0_nf; +extern cpuop_func op_1180_0_ff; +extern cpuop_func op_1190_0_nf; +extern cpuop_func op_1190_0_ff; +extern cpuop_func op_1198_0_nf; +extern cpuop_func op_1198_0_ff; +extern cpuop_func op_11a0_0_nf; +extern cpuop_func op_11a0_0_ff; +extern cpuop_func op_11a8_0_nf; +extern cpuop_func op_11a8_0_ff; +extern cpuop_func op_11b0_0_nf; +extern cpuop_func op_11b0_0_ff; +extern cpuop_func op_11b8_0_nf; +extern cpuop_func op_11b8_0_ff; +extern cpuop_func op_11b9_0_nf; +extern cpuop_func op_11b9_0_ff; +extern cpuop_func op_11ba_0_nf; +extern cpuop_func op_11ba_0_ff; +extern cpuop_func op_11bb_0_nf; +extern cpuop_func op_11bb_0_ff; +extern cpuop_func op_11bc_0_nf; +extern cpuop_func op_11bc_0_ff; +extern cpuop_func op_11c0_0_nf; +extern cpuop_func op_11c0_0_ff; +extern cpuop_func op_11d0_0_nf; +extern cpuop_func op_11d0_0_ff; +extern cpuop_func op_11d8_0_nf; +extern cpuop_func op_11d8_0_ff; +extern cpuop_func op_11e0_0_nf; +extern cpuop_func op_11e0_0_ff; +extern cpuop_func op_11e8_0_nf; +extern cpuop_func op_11e8_0_ff; +extern cpuop_func op_11f0_0_nf; +extern cpuop_func op_11f0_0_ff; +extern cpuop_func op_11f8_0_nf; +extern cpuop_func op_11f8_0_ff; +extern cpuop_func op_11f9_0_nf; +extern cpuop_func op_11f9_0_ff; +extern cpuop_func op_11fa_0_nf; +extern cpuop_func op_11fa_0_ff; +extern cpuop_func op_11fb_0_nf; +extern cpuop_func op_11fb_0_ff; +extern cpuop_func op_11fc_0_nf; +extern cpuop_func op_11fc_0_ff; +extern cpuop_func op_13c0_0_nf; +extern cpuop_func op_13c0_0_ff; +extern cpuop_func op_13d0_0_nf; +extern cpuop_func op_13d0_0_ff; +extern cpuop_func op_13d8_0_nf; +extern cpuop_func op_13d8_0_ff; +extern cpuop_func op_13e0_0_nf; +extern cpuop_func op_13e0_0_ff; +extern cpuop_func op_13e8_0_nf; +extern cpuop_func op_13e8_0_ff; +extern cpuop_func op_13f0_0_nf; +extern cpuop_func op_13f0_0_ff; +extern cpuop_func op_13f8_0_nf; +extern cpuop_func op_13f8_0_ff; +extern cpuop_func op_13f9_0_nf; +extern cpuop_func op_13f9_0_ff; +extern cpuop_func op_13fa_0_nf; +extern cpuop_func op_13fa_0_ff; +extern cpuop_func op_13fb_0_nf; +extern cpuop_func op_13fb_0_ff; +extern cpuop_func op_13fc_0_nf; +extern cpuop_func op_13fc_0_ff; +extern cpuop_func op_2000_0_nf; +extern cpuop_func op_2000_0_ff; +extern cpuop_func op_2008_0_nf; +extern cpuop_func op_2008_0_ff; +extern cpuop_func op_2010_0_nf; +extern cpuop_func op_2010_0_ff; +extern cpuop_func op_2018_0_nf; +extern cpuop_func op_2018_0_ff; +extern cpuop_func op_2020_0_nf; +extern cpuop_func op_2020_0_ff; +extern cpuop_func op_2028_0_nf; +extern cpuop_func op_2028_0_ff; +extern cpuop_func op_2030_0_nf; +extern cpuop_func op_2030_0_ff; +extern cpuop_func op_2038_0_nf; +extern cpuop_func op_2038_0_ff; +extern cpuop_func op_2039_0_nf; +extern cpuop_func op_2039_0_ff; +extern cpuop_func op_203a_0_nf; +extern cpuop_func op_203a_0_ff; +extern cpuop_func op_203b_0_nf; +extern cpuop_func op_203b_0_ff; +extern cpuop_func op_203c_0_nf; +extern cpuop_func op_203c_0_ff; +extern cpuop_func op_2040_0_nf; +extern cpuop_func op_2040_0_ff; +extern cpuop_func op_2048_0_nf; +extern cpuop_func op_2048_0_ff; +extern cpuop_func op_2050_0_nf; +extern cpuop_func op_2050_0_ff; +extern cpuop_func op_2058_0_nf; +extern cpuop_func op_2058_0_ff; +extern cpuop_func op_2060_0_nf; +extern cpuop_func op_2060_0_ff; +extern cpuop_func op_2068_0_nf; +extern cpuop_func op_2068_0_ff; +extern cpuop_func op_2070_0_nf; +extern cpuop_func op_2070_0_ff; +extern cpuop_func op_2078_0_nf; +extern cpuop_func op_2078_0_ff; +extern cpuop_func op_2079_0_nf; +extern cpuop_func op_2079_0_ff; +extern cpuop_func op_207a_0_nf; +extern cpuop_func op_207a_0_ff; +extern cpuop_func op_207b_0_nf; +extern cpuop_func op_207b_0_ff; +extern cpuop_func op_207c_0_nf; +extern cpuop_func op_207c_0_ff; +extern cpuop_func op_2080_0_nf; +extern cpuop_func op_2080_0_ff; +extern cpuop_func op_2088_0_nf; +extern cpuop_func op_2088_0_ff; +extern cpuop_func op_2090_0_nf; +extern cpuop_func op_2090_0_ff; +extern cpuop_func op_2098_0_nf; +extern cpuop_func op_2098_0_ff; +extern cpuop_func op_20a0_0_nf; +extern cpuop_func op_20a0_0_ff; +extern cpuop_func op_20a8_0_nf; +extern cpuop_func op_20a8_0_ff; +extern cpuop_func op_20b0_0_nf; +extern cpuop_func op_20b0_0_ff; +extern cpuop_func op_20b8_0_nf; +extern cpuop_func op_20b8_0_ff; +extern cpuop_func op_20b9_0_nf; +extern cpuop_func op_20b9_0_ff; +extern cpuop_func op_20ba_0_nf; +extern cpuop_func op_20ba_0_ff; +extern cpuop_func op_20bb_0_nf; +extern cpuop_func op_20bb_0_ff; +extern cpuop_func op_20bc_0_nf; +extern cpuop_func op_20bc_0_ff; +extern cpuop_func op_20c0_0_nf; +extern cpuop_func op_20c0_0_ff; +extern cpuop_func op_20c8_0_nf; +extern cpuop_func op_20c8_0_ff; +extern cpuop_func op_20d0_0_nf; +extern cpuop_func op_20d0_0_ff; +extern cpuop_func op_20d8_0_nf; +extern cpuop_func op_20d8_0_ff; +extern cpuop_func op_20e0_0_nf; +extern cpuop_func op_20e0_0_ff; +extern cpuop_func op_20e8_0_nf; +extern cpuop_func op_20e8_0_ff; +extern cpuop_func op_20f0_0_nf; +extern cpuop_func op_20f0_0_ff; +extern cpuop_func op_20f8_0_nf; +extern cpuop_func op_20f8_0_ff; +extern cpuop_func op_20f9_0_nf; +extern cpuop_func op_20f9_0_ff; +extern cpuop_func op_20fa_0_nf; +extern cpuop_func op_20fa_0_ff; +extern cpuop_func op_20fb_0_nf; +extern cpuop_func op_20fb_0_ff; +extern cpuop_func op_20fc_0_nf; +extern cpuop_func op_20fc_0_ff; +extern cpuop_func op_2100_0_nf; +extern cpuop_func op_2100_0_ff; +extern cpuop_func op_2108_0_nf; +extern cpuop_func op_2108_0_ff; +extern cpuop_func op_2110_0_nf; +extern cpuop_func op_2110_0_ff; +extern cpuop_func op_2118_0_nf; +extern cpuop_func op_2118_0_ff; +extern cpuop_func op_2120_0_nf; +extern cpuop_func op_2120_0_ff; +extern cpuop_func op_2128_0_nf; +extern cpuop_func op_2128_0_ff; +extern cpuop_func op_2130_0_nf; +extern cpuop_func op_2130_0_ff; +extern cpuop_func op_2138_0_nf; +extern cpuop_func op_2138_0_ff; +extern cpuop_func op_2139_0_nf; +extern cpuop_func op_2139_0_ff; +extern cpuop_func op_213a_0_nf; +extern cpuop_func op_213a_0_ff; +extern cpuop_func op_213b_0_nf; +extern cpuop_func op_213b_0_ff; +extern cpuop_func op_213c_0_nf; +extern cpuop_func op_213c_0_ff; +extern cpuop_func op_2140_0_nf; +extern cpuop_func op_2140_0_ff; +extern cpuop_func op_2148_0_nf; +extern cpuop_func op_2148_0_ff; +extern cpuop_func op_2150_0_nf; +extern cpuop_func op_2150_0_ff; +extern cpuop_func op_2158_0_nf; +extern cpuop_func op_2158_0_ff; +extern cpuop_func op_2160_0_nf; +extern cpuop_func op_2160_0_ff; +extern cpuop_func op_2168_0_nf; +extern cpuop_func op_2168_0_ff; +extern cpuop_func op_2170_0_nf; +extern cpuop_func op_2170_0_ff; +extern cpuop_func op_2178_0_nf; +extern cpuop_func op_2178_0_ff; +extern cpuop_func op_2179_0_nf; +extern cpuop_func op_2179_0_ff; +extern cpuop_func op_217a_0_nf; +extern cpuop_func op_217a_0_ff; +extern cpuop_func op_217b_0_nf; +extern cpuop_func op_217b_0_ff; +extern cpuop_func op_217c_0_nf; +extern cpuop_func op_217c_0_ff; +extern cpuop_func op_2180_0_nf; +extern cpuop_func op_2180_0_ff; +extern cpuop_func op_2188_0_nf; +extern cpuop_func op_2188_0_ff; +extern cpuop_func op_2190_0_nf; +extern cpuop_func op_2190_0_ff; +extern cpuop_func op_2198_0_nf; +extern cpuop_func op_2198_0_ff; +extern cpuop_func op_21a0_0_nf; +extern cpuop_func op_21a0_0_ff; +extern cpuop_func op_21a8_0_nf; +extern cpuop_func op_21a8_0_ff; +extern cpuop_func op_21b0_0_nf; +extern cpuop_func op_21b0_0_ff; +extern cpuop_func op_21b8_0_nf; +extern cpuop_func op_21b8_0_ff; +extern cpuop_func op_21b9_0_nf; +extern cpuop_func op_21b9_0_ff; +extern cpuop_func op_21ba_0_nf; +extern cpuop_func op_21ba_0_ff; +extern cpuop_func op_21bb_0_nf; +extern cpuop_func op_21bb_0_ff; +extern cpuop_func op_21bc_0_nf; +extern cpuop_func op_21bc_0_ff; +extern cpuop_func op_21c0_0_nf; +extern cpuop_func op_21c0_0_ff; +extern cpuop_func op_21c8_0_nf; +extern cpuop_func op_21c8_0_ff; +extern cpuop_func op_21d0_0_nf; +extern cpuop_func op_21d0_0_ff; +extern cpuop_func op_21d8_0_nf; +extern cpuop_func op_21d8_0_ff; +extern cpuop_func op_21e0_0_nf; +extern cpuop_func op_21e0_0_ff; +extern cpuop_func op_21e8_0_nf; +extern cpuop_func op_21e8_0_ff; +extern cpuop_func op_21f0_0_nf; +extern cpuop_func op_21f0_0_ff; +extern cpuop_func op_21f8_0_nf; +extern cpuop_func op_21f8_0_ff; +extern cpuop_func op_21f9_0_nf; +extern cpuop_func op_21f9_0_ff; +extern cpuop_func op_21fa_0_nf; +extern cpuop_func op_21fa_0_ff; +extern cpuop_func op_21fb_0_nf; +extern cpuop_func op_21fb_0_ff; +extern cpuop_func op_21fc_0_nf; +extern cpuop_func op_21fc_0_ff; +extern cpuop_func op_23c0_0_nf; +extern cpuop_func op_23c0_0_ff; +extern cpuop_func op_23c8_0_nf; +extern cpuop_func op_23c8_0_ff; +extern cpuop_func op_23d0_0_nf; +extern cpuop_func op_23d0_0_ff; +extern cpuop_func op_23d8_0_nf; +extern cpuop_func op_23d8_0_ff; +extern cpuop_func op_23e0_0_nf; +extern cpuop_func op_23e0_0_ff; +extern cpuop_func op_23e8_0_nf; +extern cpuop_func op_23e8_0_ff; +extern cpuop_func op_23f0_0_nf; +extern cpuop_func op_23f0_0_ff; +extern cpuop_func op_23f8_0_nf; +extern cpuop_func op_23f8_0_ff; +extern cpuop_func op_23f9_0_nf; +extern cpuop_func op_23f9_0_ff; +extern cpuop_func op_23fa_0_nf; +extern cpuop_func op_23fa_0_ff; +extern cpuop_func op_23fb_0_nf; +extern cpuop_func op_23fb_0_ff; +extern cpuop_func op_23fc_0_nf; +extern cpuop_func op_23fc_0_ff; +extern cpuop_func op_3000_0_nf; +extern cpuop_func op_3000_0_ff; +extern cpuop_func op_3008_0_nf; +extern cpuop_func op_3008_0_ff; +extern cpuop_func op_3010_0_nf; +extern cpuop_func op_3010_0_ff; +extern cpuop_func op_3018_0_nf; +extern cpuop_func op_3018_0_ff; +extern cpuop_func op_3020_0_nf; +extern cpuop_func op_3020_0_ff; +extern cpuop_func op_3028_0_nf; +extern cpuop_func op_3028_0_ff; +extern cpuop_func op_3030_0_nf; +extern cpuop_func op_3030_0_ff; +extern cpuop_func op_3038_0_nf; +extern cpuop_func op_3038_0_ff; +extern cpuop_func op_3039_0_nf; +extern cpuop_func op_3039_0_ff; +extern cpuop_func op_303a_0_nf; +extern cpuop_func op_303a_0_ff; +extern cpuop_func op_303b_0_nf; +extern cpuop_func op_303b_0_ff; +extern cpuop_func op_303c_0_nf; +extern cpuop_func op_303c_0_ff; +extern cpuop_func op_3040_0_nf; +extern cpuop_func op_3040_0_ff; +extern cpuop_func op_3048_0_nf; +extern cpuop_func op_3048_0_ff; +extern cpuop_func op_3050_0_nf; +extern cpuop_func op_3050_0_ff; +extern cpuop_func op_3058_0_nf; +extern cpuop_func op_3058_0_ff; +extern cpuop_func op_3060_0_nf; +extern cpuop_func op_3060_0_ff; +extern cpuop_func op_3068_0_nf; +extern cpuop_func op_3068_0_ff; +extern cpuop_func op_3070_0_nf; +extern cpuop_func op_3070_0_ff; +extern cpuop_func op_3078_0_nf; +extern cpuop_func op_3078_0_ff; +extern cpuop_func op_3079_0_nf; +extern cpuop_func op_3079_0_ff; +extern cpuop_func op_307a_0_nf; +extern cpuop_func op_307a_0_ff; +extern cpuop_func op_307b_0_nf; +extern cpuop_func op_307b_0_ff; +extern cpuop_func op_307c_0_nf; +extern cpuop_func op_307c_0_ff; +extern cpuop_func op_3080_0_nf; +extern cpuop_func op_3080_0_ff; +extern cpuop_func op_3088_0_nf; +extern cpuop_func op_3088_0_ff; +extern cpuop_func op_3090_0_nf; +extern cpuop_func op_3090_0_ff; +extern cpuop_func op_3098_0_nf; +extern cpuop_func op_3098_0_ff; +extern cpuop_func op_30a0_0_nf; +extern cpuop_func op_30a0_0_ff; +extern cpuop_func op_30a8_0_nf; +extern cpuop_func op_30a8_0_ff; +extern cpuop_func op_30b0_0_nf; +extern cpuop_func op_30b0_0_ff; +extern cpuop_func op_30b8_0_nf; +extern cpuop_func op_30b8_0_ff; +extern cpuop_func op_30b9_0_nf; +extern cpuop_func op_30b9_0_ff; +extern cpuop_func op_30ba_0_nf; +extern cpuop_func op_30ba_0_ff; +extern cpuop_func op_30bb_0_nf; +extern cpuop_func op_30bb_0_ff; +extern cpuop_func op_30bc_0_nf; +extern cpuop_func op_30bc_0_ff; +extern cpuop_func op_30c0_0_nf; +extern cpuop_func op_30c0_0_ff; +extern cpuop_func op_30c8_0_nf; +extern cpuop_func op_30c8_0_ff; +extern cpuop_func op_30d0_0_nf; +extern cpuop_func op_30d0_0_ff; +extern cpuop_func op_30d8_0_nf; +extern cpuop_func op_30d8_0_ff; +extern cpuop_func op_30e0_0_nf; +extern cpuop_func op_30e0_0_ff; +extern cpuop_func op_30e8_0_nf; +extern cpuop_func op_30e8_0_ff; +extern cpuop_func op_30f0_0_nf; +extern cpuop_func op_30f0_0_ff; +extern cpuop_func op_30f8_0_nf; +extern cpuop_func op_30f8_0_ff; +extern cpuop_func op_30f9_0_nf; +extern cpuop_func op_30f9_0_ff; +extern cpuop_func op_30fa_0_nf; +extern cpuop_func op_30fa_0_ff; +extern cpuop_func op_30fb_0_nf; +extern cpuop_func op_30fb_0_ff; +extern cpuop_func op_30fc_0_nf; +extern cpuop_func op_30fc_0_ff; +extern cpuop_func op_3100_0_nf; +extern cpuop_func op_3100_0_ff; +extern cpuop_func op_3108_0_nf; +extern cpuop_func op_3108_0_ff; +extern cpuop_func op_3110_0_nf; +extern cpuop_func op_3110_0_ff; +extern cpuop_func op_3118_0_nf; +extern cpuop_func op_3118_0_ff; +extern cpuop_func op_3120_0_nf; +extern cpuop_func op_3120_0_ff; +extern cpuop_func op_3128_0_nf; +extern cpuop_func op_3128_0_ff; +extern cpuop_func op_3130_0_nf; +extern cpuop_func op_3130_0_ff; +extern cpuop_func op_3138_0_nf; +extern cpuop_func op_3138_0_ff; +extern cpuop_func op_3139_0_nf; +extern cpuop_func op_3139_0_ff; +extern cpuop_func op_313a_0_nf; +extern cpuop_func op_313a_0_ff; +extern cpuop_func op_313b_0_nf; +extern cpuop_func op_313b_0_ff; +extern cpuop_func op_313c_0_nf; +extern cpuop_func op_313c_0_ff; +extern cpuop_func op_3140_0_nf; +extern cpuop_func op_3140_0_ff; +extern cpuop_func op_3148_0_nf; +extern cpuop_func op_3148_0_ff; +extern cpuop_func op_3150_0_nf; +extern cpuop_func op_3150_0_ff; +extern cpuop_func op_3158_0_nf; +extern cpuop_func op_3158_0_ff; +extern cpuop_func op_3160_0_nf; +extern cpuop_func op_3160_0_ff; +extern cpuop_func op_3168_0_nf; +extern cpuop_func op_3168_0_ff; +extern cpuop_func op_3170_0_nf; +extern cpuop_func op_3170_0_ff; +extern cpuop_func op_3178_0_nf; +extern cpuop_func op_3178_0_ff; +extern cpuop_func op_3179_0_nf; +extern cpuop_func op_3179_0_ff; +extern cpuop_func op_317a_0_nf; +extern cpuop_func op_317a_0_ff; +extern cpuop_func op_317b_0_nf; +extern cpuop_func op_317b_0_ff; +extern cpuop_func op_317c_0_nf; +extern cpuop_func op_317c_0_ff; +extern cpuop_func op_3180_0_nf; +extern cpuop_func op_3180_0_ff; +extern cpuop_func op_3188_0_nf; +extern cpuop_func op_3188_0_ff; +extern cpuop_func op_3190_0_nf; +extern cpuop_func op_3190_0_ff; +extern cpuop_func op_3198_0_nf; +extern cpuop_func op_3198_0_ff; +extern cpuop_func op_31a0_0_nf; +extern cpuop_func op_31a0_0_ff; +extern cpuop_func op_31a8_0_nf; +extern cpuop_func op_31a8_0_ff; +extern cpuop_func op_31b0_0_nf; +extern cpuop_func op_31b0_0_ff; +extern cpuop_func op_31b8_0_nf; +extern cpuop_func op_31b8_0_ff; +extern cpuop_func op_31b9_0_nf; +extern cpuop_func op_31b9_0_ff; +extern cpuop_func op_31ba_0_nf; +extern cpuop_func op_31ba_0_ff; +extern cpuop_func op_31bb_0_nf; +extern cpuop_func op_31bb_0_ff; +extern cpuop_func op_31bc_0_nf; +extern cpuop_func op_31bc_0_ff; +extern cpuop_func op_31c0_0_nf; +extern cpuop_func op_31c0_0_ff; +extern cpuop_func op_31c8_0_nf; +extern cpuop_func op_31c8_0_ff; +extern cpuop_func op_31d0_0_nf; +extern cpuop_func op_31d0_0_ff; +extern cpuop_func op_31d8_0_nf; +extern cpuop_func op_31d8_0_ff; +extern cpuop_func op_31e0_0_nf; +extern cpuop_func op_31e0_0_ff; +extern cpuop_func op_31e8_0_nf; +extern cpuop_func op_31e8_0_ff; +extern cpuop_func op_31f0_0_nf; +extern cpuop_func op_31f0_0_ff; +extern cpuop_func op_31f8_0_nf; +extern cpuop_func op_31f8_0_ff; +extern cpuop_func op_31f9_0_nf; +extern cpuop_func op_31f9_0_ff; +extern cpuop_func op_31fa_0_nf; +extern cpuop_func op_31fa_0_ff; +extern cpuop_func op_31fb_0_nf; +extern cpuop_func op_31fb_0_ff; +extern cpuop_func op_31fc_0_nf; +extern cpuop_func op_31fc_0_ff; +extern cpuop_func op_33c0_0_nf; +extern cpuop_func op_33c0_0_ff; +extern cpuop_func op_33c8_0_nf; +extern cpuop_func op_33c8_0_ff; +extern cpuop_func op_33d0_0_nf; +extern cpuop_func op_33d0_0_ff; +extern cpuop_func op_33d8_0_nf; +extern cpuop_func op_33d8_0_ff; +extern cpuop_func op_33e0_0_nf; +extern cpuop_func op_33e0_0_ff; +extern cpuop_func op_33e8_0_nf; +extern cpuop_func op_33e8_0_ff; +extern cpuop_func op_33f0_0_nf; +extern cpuop_func op_33f0_0_ff; +extern cpuop_func op_33f8_0_nf; +extern cpuop_func op_33f8_0_ff; +extern cpuop_func op_33f9_0_nf; +extern cpuop_func op_33f9_0_ff; +extern cpuop_func op_33fa_0_nf; +extern cpuop_func op_33fa_0_ff; +extern cpuop_func op_33fb_0_nf; +extern cpuop_func op_33fb_0_ff; +extern cpuop_func op_33fc_0_nf; +extern cpuop_func op_33fc_0_ff; +extern cpuop_func op_4000_0_nf; +extern cpuop_func op_4000_0_ff; +extern cpuop_func op_4010_0_nf; +extern cpuop_func op_4010_0_ff; +extern cpuop_func op_4018_0_nf; +extern cpuop_func op_4018_0_ff; +extern cpuop_func op_4020_0_nf; +extern cpuop_func op_4020_0_ff; +extern cpuop_func op_4028_0_nf; +extern cpuop_func op_4028_0_ff; +extern cpuop_func op_4030_0_nf; +extern cpuop_func op_4030_0_ff; +extern cpuop_func op_4038_0_nf; +extern cpuop_func op_4038_0_ff; +extern cpuop_func op_4039_0_nf; +extern cpuop_func op_4039_0_ff; +extern cpuop_func op_4040_0_nf; +extern cpuop_func op_4040_0_ff; +extern cpuop_func op_4050_0_nf; +extern cpuop_func op_4050_0_ff; +extern cpuop_func op_4058_0_nf; +extern cpuop_func op_4058_0_ff; +extern cpuop_func op_4060_0_nf; +extern cpuop_func op_4060_0_ff; +extern cpuop_func op_4068_0_nf; +extern cpuop_func op_4068_0_ff; +extern cpuop_func op_4070_0_nf; +extern cpuop_func op_4070_0_ff; +extern cpuop_func op_4078_0_nf; +extern cpuop_func op_4078_0_ff; +extern cpuop_func op_4079_0_nf; +extern cpuop_func op_4079_0_ff; +extern cpuop_func op_4080_0_nf; +extern cpuop_func op_4080_0_ff; +extern cpuop_func op_4090_0_nf; +extern cpuop_func op_4090_0_ff; +extern cpuop_func op_4098_0_nf; +extern cpuop_func op_4098_0_ff; +extern cpuop_func op_40a0_0_nf; +extern cpuop_func op_40a0_0_ff; +extern cpuop_func op_40a8_0_nf; +extern cpuop_func op_40a8_0_ff; +extern cpuop_func op_40b0_0_nf; +extern cpuop_func op_40b0_0_ff; +extern cpuop_func op_40b8_0_nf; +extern cpuop_func op_40b8_0_ff; +extern cpuop_func op_40b9_0_nf; +extern cpuop_func op_40b9_0_ff; +extern cpuop_func op_40c0_0_nf; +extern cpuop_func op_40c0_0_ff; +extern cpuop_func op_40d0_0_nf; +extern cpuop_func op_40d0_0_ff; +extern cpuop_func op_40d8_0_nf; +extern cpuop_func op_40d8_0_ff; +extern cpuop_func op_40e0_0_nf; +extern cpuop_func op_40e0_0_ff; +extern cpuop_func op_40e8_0_nf; +extern cpuop_func op_40e8_0_ff; +extern cpuop_func op_40f0_0_nf; +extern cpuop_func op_40f0_0_ff; +extern cpuop_func op_40f8_0_nf; +extern cpuop_func op_40f8_0_ff; +extern cpuop_func op_40f9_0_nf; +extern cpuop_func op_40f9_0_ff; +extern cpuop_func op_4100_0_nf; +extern cpuop_func op_4100_0_ff; +extern cpuop_func op_4110_0_nf; +extern cpuop_func op_4110_0_ff; +extern cpuop_func op_4118_0_nf; +extern cpuop_func op_4118_0_ff; +extern cpuop_func op_4120_0_nf; +extern cpuop_func op_4120_0_ff; +extern cpuop_func op_4128_0_nf; +extern cpuop_func op_4128_0_ff; +extern cpuop_func op_4130_0_nf; +extern cpuop_func op_4130_0_ff; +extern cpuop_func op_4138_0_nf; +extern cpuop_func op_4138_0_ff; +extern cpuop_func op_4139_0_nf; +extern cpuop_func op_4139_0_ff; +extern cpuop_func op_413a_0_nf; +extern cpuop_func op_413a_0_ff; +extern cpuop_func op_413b_0_nf; +extern cpuop_func op_413b_0_ff; +extern cpuop_func op_413c_0_nf; +extern cpuop_func op_413c_0_ff; +extern cpuop_func op_4180_0_nf; +extern cpuop_func op_4180_0_ff; +extern cpuop_func op_4190_0_nf; +extern cpuop_func op_4190_0_ff; +extern cpuop_func op_4198_0_nf; +extern cpuop_func op_4198_0_ff; +extern cpuop_func op_41a0_0_nf; +extern cpuop_func op_41a0_0_ff; +extern cpuop_func op_41a8_0_nf; +extern cpuop_func op_41a8_0_ff; +extern cpuop_func op_41b0_0_nf; +extern cpuop_func op_41b0_0_ff; +extern cpuop_func op_41b8_0_nf; +extern cpuop_func op_41b8_0_ff; +extern cpuop_func op_41b9_0_nf; +extern cpuop_func op_41b9_0_ff; +extern cpuop_func op_41ba_0_nf; +extern cpuop_func op_41ba_0_ff; +extern cpuop_func op_41bb_0_nf; +extern cpuop_func op_41bb_0_ff; +extern cpuop_func op_41bc_0_nf; +extern cpuop_func op_41bc_0_ff; +extern cpuop_func op_41d0_0_nf; +extern cpuop_func op_41d0_0_ff; +extern cpuop_func op_41e8_0_nf; +extern cpuop_func op_41e8_0_ff; +extern cpuop_func op_41f0_0_nf; +extern cpuop_func op_41f0_0_ff; +extern cpuop_func op_41f8_0_nf; +extern cpuop_func op_41f8_0_ff; +extern cpuop_func op_41f9_0_nf; +extern cpuop_func op_41f9_0_ff; +extern cpuop_func op_41fa_0_nf; +extern cpuop_func op_41fa_0_ff; +extern cpuop_func op_41fb_0_nf; +extern cpuop_func op_41fb_0_ff; +extern cpuop_func op_4200_0_nf; +extern cpuop_func op_4200_0_ff; +extern cpuop_func op_4210_0_nf; +extern cpuop_func op_4210_0_ff; +extern cpuop_func op_4218_0_nf; +extern cpuop_func op_4218_0_ff; +extern cpuop_func op_4220_0_nf; +extern cpuop_func op_4220_0_ff; +extern cpuop_func op_4228_0_nf; +extern cpuop_func op_4228_0_ff; +extern cpuop_func op_4230_0_nf; +extern cpuop_func op_4230_0_ff; +extern cpuop_func op_4238_0_nf; +extern cpuop_func op_4238_0_ff; +extern cpuop_func op_4239_0_nf; +extern cpuop_func op_4239_0_ff; +extern cpuop_func op_4240_0_nf; +extern cpuop_func op_4240_0_ff; +extern cpuop_func op_4250_0_nf; +extern cpuop_func op_4250_0_ff; +extern cpuop_func op_4258_0_nf; +extern cpuop_func op_4258_0_ff; +extern cpuop_func op_4260_0_nf; +extern cpuop_func op_4260_0_ff; +extern cpuop_func op_4268_0_nf; +extern cpuop_func op_4268_0_ff; +extern cpuop_func op_4270_0_nf; +extern cpuop_func op_4270_0_ff; +extern cpuop_func op_4278_0_nf; +extern cpuop_func op_4278_0_ff; +extern cpuop_func op_4279_0_nf; +extern cpuop_func op_4279_0_ff; +extern cpuop_func op_4280_0_nf; +extern cpuop_func op_4280_0_ff; +extern cpuop_func op_4290_0_nf; +extern cpuop_func op_4290_0_ff; +extern cpuop_func op_4298_0_nf; +extern cpuop_func op_4298_0_ff; +extern cpuop_func op_42a0_0_nf; +extern cpuop_func op_42a0_0_ff; +extern cpuop_func op_42a8_0_nf; +extern cpuop_func op_42a8_0_ff; +extern cpuop_func op_42b0_0_nf; +extern cpuop_func op_42b0_0_ff; +extern cpuop_func op_42b8_0_nf; +extern cpuop_func op_42b8_0_ff; +extern cpuop_func op_42b9_0_nf; +extern cpuop_func op_42b9_0_ff; +extern cpuop_func op_42c0_0_nf; +extern cpuop_func op_42c0_0_ff; +extern cpuop_func op_42d0_0_nf; +extern cpuop_func op_42d0_0_ff; +extern cpuop_func op_42d8_0_nf; +extern cpuop_func op_42d8_0_ff; +extern cpuop_func op_42e0_0_nf; +extern cpuop_func op_42e0_0_ff; +extern cpuop_func op_42e8_0_nf; +extern cpuop_func op_42e8_0_ff; +extern cpuop_func op_42f0_0_nf; +extern cpuop_func op_42f0_0_ff; +extern cpuop_func op_42f8_0_nf; +extern cpuop_func op_42f8_0_ff; +extern cpuop_func op_42f9_0_nf; +extern cpuop_func op_42f9_0_ff; +extern cpuop_func op_4400_0_nf; +extern cpuop_func op_4400_0_ff; +extern cpuop_func op_4410_0_nf; +extern cpuop_func op_4410_0_ff; +extern cpuop_func op_4418_0_nf; +extern cpuop_func op_4418_0_ff; +extern cpuop_func op_4420_0_nf; +extern cpuop_func op_4420_0_ff; +extern cpuop_func op_4428_0_nf; +extern cpuop_func op_4428_0_ff; +extern cpuop_func op_4430_0_nf; +extern cpuop_func op_4430_0_ff; +extern cpuop_func op_4438_0_nf; +extern cpuop_func op_4438_0_ff; +extern cpuop_func op_4439_0_nf; +extern cpuop_func op_4439_0_ff; +extern cpuop_func op_4440_0_nf; +extern cpuop_func op_4440_0_ff; +extern cpuop_func op_4450_0_nf; +extern cpuop_func op_4450_0_ff; +extern cpuop_func op_4458_0_nf; +extern cpuop_func op_4458_0_ff; +extern cpuop_func op_4460_0_nf; +extern cpuop_func op_4460_0_ff; +extern cpuop_func op_4468_0_nf; +extern cpuop_func op_4468_0_ff; +extern cpuop_func op_4470_0_nf; +extern cpuop_func op_4470_0_ff; +extern cpuop_func op_4478_0_nf; +extern cpuop_func op_4478_0_ff; +extern cpuop_func op_4479_0_nf; +extern cpuop_func op_4479_0_ff; +extern cpuop_func op_4480_0_nf; +extern cpuop_func op_4480_0_ff; +extern cpuop_func op_4490_0_nf; +extern cpuop_func op_4490_0_ff; +extern cpuop_func op_4498_0_nf; +extern cpuop_func op_4498_0_ff; +extern cpuop_func op_44a0_0_nf; +extern cpuop_func op_44a0_0_ff; +extern cpuop_func op_44a8_0_nf; +extern cpuop_func op_44a8_0_ff; +extern cpuop_func op_44b0_0_nf; +extern cpuop_func op_44b0_0_ff; +extern cpuop_func op_44b8_0_nf; +extern cpuop_func op_44b8_0_ff; +extern cpuop_func op_44b9_0_nf; +extern cpuop_func op_44b9_0_ff; +extern cpuop_func op_44c0_0_nf; +extern cpuop_func op_44c0_0_ff; +extern cpuop_func op_44d0_0_nf; +extern cpuop_func op_44d0_0_ff; +extern cpuop_func op_44d8_0_nf; +extern cpuop_func op_44d8_0_ff; +extern cpuop_func op_44e0_0_nf; +extern cpuop_func op_44e0_0_ff; +extern cpuop_func op_44e8_0_nf; +extern cpuop_func op_44e8_0_ff; +extern cpuop_func op_44f0_0_nf; +extern cpuop_func op_44f0_0_ff; +extern cpuop_func op_44f8_0_nf; +extern cpuop_func op_44f8_0_ff; +extern cpuop_func op_44f9_0_nf; +extern cpuop_func op_44f9_0_ff; +extern cpuop_func op_44fa_0_nf; +extern cpuop_func op_44fa_0_ff; +extern cpuop_func op_44fb_0_nf; +extern cpuop_func op_44fb_0_ff; +extern cpuop_func op_44fc_0_nf; +extern cpuop_func op_44fc_0_ff; +extern cpuop_func op_4600_0_nf; +extern cpuop_func op_4600_0_ff; +extern cpuop_func op_4610_0_nf; +extern cpuop_func op_4610_0_ff; +extern cpuop_func op_4618_0_nf; +extern cpuop_func op_4618_0_ff; +extern cpuop_func op_4620_0_nf; +extern cpuop_func op_4620_0_ff; +extern cpuop_func op_4628_0_nf; +extern cpuop_func op_4628_0_ff; +extern cpuop_func op_4630_0_nf; +extern cpuop_func op_4630_0_ff; +extern cpuop_func op_4638_0_nf; +extern cpuop_func op_4638_0_ff; +extern cpuop_func op_4639_0_nf; +extern cpuop_func op_4639_0_ff; +extern cpuop_func op_4640_0_nf; +extern cpuop_func op_4640_0_ff; +extern cpuop_func op_4650_0_nf; +extern cpuop_func op_4650_0_ff; +extern cpuop_func op_4658_0_nf; +extern cpuop_func op_4658_0_ff; +extern cpuop_func op_4660_0_nf; +extern cpuop_func op_4660_0_ff; +extern cpuop_func op_4668_0_nf; +extern cpuop_func op_4668_0_ff; +extern cpuop_func op_4670_0_nf; +extern cpuop_func op_4670_0_ff; +extern cpuop_func op_4678_0_nf; +extern cpuop_func op_4678_0_ff; +extern cpuop_func op_4679_0_nf; +extern cpuop_func op_4679_0_ff; +extern cpuop_func op_4680_0_nf; +extern cpuop_func op_4680_0_ff; +extern cpuop_func op_4690_0_nf; +extern cpuop_func op_4690_0_ff; +extern cpuop_func op_4698_0_nf; +extern cpuop_func op_4698_0_ff; +extern cpuop_func op_46a0_0_nf; +extern cpuop_func op_46a0_0_ff; +extern cpuop_func op_46a8_0_nf; +extern cpuop_func op_46a8_0_ff; +extern cpuop_func op_46b0_0_nf; +extern cpuop_func op_46b0_0_ff; +extern cpuop_func op_46b8_0_nf; +extern cpuop_func op_46b8_0_ff; +extern cpuop_func op_46b9_0_nf; +extern cpuop_func op_46b9_0_ff; +extern cpuop_func op_46c0_0_nf; +extern cpuop_func op_46c0_0_ff; +extern cpuop_func op_46d0_0_nf; +extern cpuop_func op_46d0_0_ff; +extern cpuop_func op_46d8_0_nf; +extern cpuop_func op_46d8_0_ff; +extern cpuop_func op_46e0_0_nf; +extern cpuop_func op_46e0_0_ff; +extern cpuop_func op_46e8_0_nf; +extern cpuop_func op_46e8_0_ff; +extern cpuop_func op_46f0_0_nf; +extern cpuop_func op_46f0_0_ff; +extern cpuop_func op_46f8_0_nf; +extern cpuop_func op_46f8_0_ff; +extern cpuop_func op_46f9_0_nf; +extern cpuop_func op_46f9_0_ff; +extern cpuop_func op_46fa_0_nf; +extern cpuop_func op_46fa_0_ff; +extern cpuop_func op_46fb_0_nf; +extern cpuop_func op_46fb_0_ff; +extern cpuop_func op_46fc_0_nf; +extern cpuop_func op_46fc_0_ff; +extern cpuop_func op_4800_0_nf; +extern cpuop_func op_4800_0_ff; +extern cpuop_func op_4808_0_nf; +extern cpuop_func op_4808_0_ff; +extern cpuop_func op_4810_0_nf; +extern cpuop_func op_4810_0_ff; +extern cpuop_func op_4818_0_nf; +extern cpuop_func op_4818_0_ff; +extern cpuop_func op_4820_0_nf; +extern cpuop_func op_4820_0_ff; +extern cpuop_func op_4828_0_nf; +extern cpuop_func op_4828_0_ff; +extern cpuop_func op_4830_0_nf; +extern cpuop_func op_4830_0_ff; +extern cpuop_func op_4838_0_nf; +extern cpuop_func op_4838_0_ff; +extern cpuop_func op_4839_0_nf; +extern cpuop_func op_4839_0_ff; +extern cpuop_func op_4840_0_nf; +extern cpuop_func op_4840_0_ff; +extern cpuop_func op_4848_0_nf; +extern cpuop_func op_4848_0_ff; +extern cpuop_func op_4850_0_nf; +extern cpuop_func op_4850_0_ff; +extern cpuop_func op_4868_0_nf; +extern cpuop_func op_4868_0_ff; +extern cpuop_func op_4870_0_nf; +extern cpuop_func op_4870_0_ff; +extern cpuop_func op_4878_0_nf; +extern cpuop_func op_4878_0_ff; +extern cpuop_func op_4879_0_nf; +extern cpuop_func op_4879_0_ff; +extern cpuop_func op_487a_0_nf; +extern cpuop_func op_487a_0_ff; +extern cpuop_func op_487b_0_nf; +extern cpuop_func op_487b_0_ff; +extern cpuop_func op_4880_0_nf; +extern cpuop_func op_4880_0_ff; +extern cpuop_func op_4890_0_nf; +extern cpuop_func op_4890_0_ff; +extern cpuop_func op_48a0_0_nf; +extern cpuop_func op_48a0_0_ff; +extern cpuop_func op_48a8_0_nf; +extern cpuop_func op_48a8_0_ff; +extern cpuop_func op_48b0_0_nf; +extern cpuop_func op_48b0_0_ff; +extern cpuop_func op_48b8_0_nf; +extern cpuop_func op_48b8_0_ff; +extern cpuop_func op_48b9_0_nf; +extern cpuop_func op_48b9_0_ff; +extern cpuop_func op_48c0_0_nf; +extern cpuop_func op_48c0_0_ff; +extern cpuop_func op_48d0_0_nf; +extern cpuop_func op_48d0_0_ff; +extern cpuop_func op_48e0_0_nf; +extern cpuop_func op_48e0_0_ff; +extern cpuop_func op_48e8_0_nf; +extern cpuop_func op_48e8_0_ff; +extern cpuop_func op_48f0_0_nf; +extern cpuop_func op_48f0_0_ff; +extern cpuop_func op_48f8_0_nf; +extern cpuop_func op_48f8_0_ff; +extern cpuop_func op_48f9_0_nf; +extern cpuop_func op_48f9_0_ff; +extern cpuop_func op_49c0_0_nf; +extern cpuop_func op_49c0_0_ff; +extern cpuop_func op_4a00_0_nf; +extern cpuop_func op_4a00_0_ff; +extern cpuop_func op_4a10_0_nf; +extern cpuop_func op_4a10_0_ff; +extern cpuop_func op_4a18_0_nf; +extern cpuop_func op_4a18_0_ff; +extern cpuop_func op_4a20_0_nf; +extern cpuop_func op_4a20_0_ff; +extern cpuop_func op_4a28_0_nf; +extern cpuop_func op_4a28_0_ff; +extern cpuop_func op_4a30_0_nf; +extern cpuop_func op_4a30_0_ff; +extern cpuop_func op_4a38_0_nf; +extern cpuop_func op_4a38_0_ff; +extern cpuop_func op_4a39_0_nf; +extern cpuop_func op_4a39_0_ff; +extern cpuop_func op_4a3a_0_nf; +extern cpuop_func op_4a3a_0_ff; +extern cpuop_func op_4a3b_0_nf; +extern cpuop_func op_4a3b_0_ff; +extern cpuop_func op_4a3c_0_nf; +extern cpuop_func op_4a3c_0_ff; +extern cpuop_func op_4a40_0_nf; +extern cpuop_func op_4a40_0_ff; +extern cpuop_func op_4a48_0_nf; +extern cpuop_func op_4a48_0_ff; +extern cpuop_func op_4a50_0_nf; +extern cpuop_func op_4a50_0_ff; +extern cpuop_func op_4a58_0_nf; +extern cpuop_func op_4a58_0_ff; +extern cpuop_func op_4a60_0_nf; +extern cpuop_func op_4a60_0_ff; +extern cpuop_func op_4a68_0_nf; +extern cpuop_func op_4a68_0_ff; +extern cpuop_func op_4a70_0_nf; +extern cpuop_func op_4a70_0_ff; +extern cpuop_func op_4a78_0_nf; +extern cpuop_func op_4a78_0_ff; +extern cpuop_func op_4a79_0_nf; +extern cpuop_func op_4a79_0_ff; +extern cpuop_func op_4a7a_0_nf; +extern cpuop_func op_4a7a_0_ff; +extern cpuop_func op_4a7b_0_nf; +extern cpuop_func op_4a7b_0_ff; +extern cpuop_func op_4a7c_0_nf; +extern cpuop_func op_4a7c_0_ff; +extern cpuop_func op_4a80_0_nf; +extern cpuop_func op_4a80_0_ff; +extern cpuop_func op_4a88_0_nf; +extern cpuop_func op_4a88_0_ff; +extern cpuop_func op_4a90_0_nf; +extern cpuop_func op_4a90_0_ff; +extern cpuop_func op_4a98_0_nf; +extern cpuop_func op_4a98_0_ff; +extern cpuop_func op_4aa0_0_nf; +extern cpuop_func op_4aa0_0_ff; +extern cpuop_func op_4aa8_0_nf; +extern cpuop_func op_4aa8_0_ff; +extern cpuop_func op_4ab0_0_nf; +extern cpuop_func op_4ab0_0_ff; +extern cpuop_func op_4ab8_0_nf; +extern cpuop_func op_4ab8_0_ff; +extern cpuop_func op_4ab9_0_nf; +extern cpuop_func op_4ab9_0_ff; +extern cpuop_func op_4aba_0_nf; +extern cpuop_func op_4aba_0_ff; +extern cpuop_func op_4abb_0_nf; +extern cpuop_func op_4abb_0_ff; +extern cpuop_func op_4abc_0_nf; +extern cpuop_func op_4abc_0_ff; +extern cpuop_func op_4ac0_0_nf; +extern cpuop_func op_4ac0_0_ff; +extern cpuop_func op_4ad0_0_nf; +extern cpuop_func op_4ad0_0_ff; +extern cpuop_func op_4ad8_0_nf; +extern cpuop_func op_4ad8_0_ff; +extern cpuop_func op_4ae0_0_nf; +extern cpuop_func op_4ae0_0_ff; +extern cpuop_func op_4ae8_0_nf; +extern cpuop_func op_4ae8_0_ff; +extern cpuop_func op_4af0_0_nf; +extern cpuop_func op_4af0_0_ff; +extern cpuop_func op_4af8_0_nf; +extern cpuop_func op_4af8_0_ff; +extern cpuop_func op_4af9_0_nf; +extern cpuop_func op_4af9_0_ff; +extern cpuop_func op_4c00_0_nf; +extern cpuop_func op_4c00_0_ff; +extern cpuop_func op_4c10_0_nf; +extern cpuop_func op_4c10_0_ff; +extern cpuop_func op_4c18_0_nf; +extern cpuop_func op_4c18_0_ff; +extern cpuop_func op_4c20_0_nf; +extern cpuop_func op_4c20_0_ff; +extern cpuop_func op_4c28_0_nf; +extern cpuop_func op_4c28_0_ff; +extern cpuop_func op_4c30_0_nf; +extern cpuop_func op_4c30_0_ff; +extern cpuop_func op_4c38_0_nf; +extern cpuop_func op_4c38_0_ff; +extern cpuop_func op_4c39_0_nf; +extern cpuop_func op_4c39_0_ff; +extern cpuop_func op_4c3a_0_nf; +extern cpuop_func op_4c3a_0_ff; +extern cpuop_func op_4c3b_0_nf; +extern cpuop_func op_4c3b_0_ff; +extern cpuop_func op_4c3c_0_nf; +extern cpuop_func op_4c3c_0_ff; +extern cpuop_func op_4c40_0_nf; +extern cpuop_func op_4c40_0_ff; +extern cpuop_func op_4c50_0_nf; +extern cpuop_func op_4c50_0_ff; +extern cpuop_func op_4c58_0_nf; +extern cpuop_func op_4c58_0_ff; +extern cpuop_func op_4c60_0_nf; +extern cpuop_func op_4c60_0_ff; +extern cpuop_func op_4c68_0_nf; +extern cpuop_func op_4c68_0_ff; +extern cpuop_func op_4c70_0_nf; +extern cpuop_func op_4c70_0_ff; +extern cpuop_func op_4c78_0_nf; +extern cpuop_func op_4c78_0_ff; +extern cpuop_func op_4c79_0_nf; +extern cpuop_func op_4c79_0_ff; +extern cpuop_func op_4c7a_0_nf; +extern cpuop_func op_4c7a_0_ff; +extern cpuop_func op_4c7b_0_nf; +extern cpuop_func op_4c7b_0_ff; +extern cpuop_func op_4c7c_0_nf; +extern cpuop_func op_4c7c_0_ff; +extern cpuop_func op_4c90_0_nf; +extern cpuop_func op_4c90_0_ff; +extern cpuop_func op_4c98_0_nf; +extern cpuop_func op_4c98_0_ff; +extern cpuop_func op_4ca8_0_nf; +extern cpuop_func op_4ca8_0_ff; +extern cpuop_func op_4cb0_0_nf; +extern cpuop_func op_4cb0_0_ff; +extern cpuop_func op_4cb8_0_nf; +extern cpuop_func op_4cb8_0_ff; +extern cpuop_func op_4cb9_0_nf; +extern cpuop_func op_4cb9_0_ff; +extern cpuop_func op_4cba_0_nf; +extern cpuop_func op_4cba_0_ff; +extern cpuop_func op_4cbb_0_nf; +extern cpuop_func op_4cbb_0_ff; +extern cpuop_func op_4cd0_0_nf; +extern cpuop_func op_4cd0_0_ff; +extern cpuop_func op_4cd8_0_nf; +extern cpuop_func op_4cd8_0_ff; +extern cpuop_func op_4ce8_0_nf; +extern cpuop_func op_4ce8_0_ff; +extern cpuop_func op_4cf0_0_nf; +extern cpuop_func op_4cf0_0_ff; +extern cpuop_func op_4cf8_0_nf; +extern cpuop_func op_4cf8_0_ff; +extern cpuop_func op_4cf9_0_nf; +extern cpuop_func op_4cf9_0_ff; +extern cpuop_func op_4cfa_0_nf; +extern cpuop_func op_4cfa_0_ff; +extern cpuop_func op_4cfb_0_nf; +extern cpuop_func op_4cfb_0_ff; +extern cpuop_func op_4e40_0_nf; +extern cpuop_func op_4e40_0_ff; +extern cpuop_func op_4e50_0_nf; +extern cpuop_func op_4e50_0_ff; +extern cpuop_func op_4e58_0_nf; +extern cpuop_func op_4e58_0_ff; +extern cpuop_func op_4e60_0_nf; +extern cpuop_func op_4e60_0_ff; +extern cpuop_func op_4e68_0_nf; +extern cpuop_func op_4e68_0_ff; +extern cpuop_func op_4e70_0_nf; +extern cpuop_func op_4e70_0_ff; +extern cpuop_func op_4e71_0_nf; +extern cpuop_func op_4e71_0_ff; +extern cpuop_func op_4e72_0_nf; +extern cpuop_func op_4e72_0_ff; +extern cpuop_func op_4e73_0_nf; +extern cpuop_func op_4e73_0_ff; +extern cpuop_func op_4e74_0_nf; +extern cpuop_func op_4e74_0_ff; +extern cpuop_func op_4e75_0_nf; +extern cpuop_func op_4e75_0_ff; +extern cpuop_func op_4e76_0_nf; +extern cpuop_func op_4e76_0_ff; +extern cpuop_func op_4e77_0_nf; +extern cpuop_func op_4e77_0_ff; +extern cpuop_func op_4e7a_0_nf; +extern cpuop_func op_4e7a_0_ff; +extern cpuop_func op_4e7b_0_nf; +extern cpuop_func op_4e7b_0_ff; +extern cpuop_func op_4e90_0_nf; +extern cpuop_func op_4e90_0_ff; +extern cpuop_func op_4ea8_0_nf; +extern cpuop_func op_4ea8_0_ff; +extern cpuop_func op_4eb0_0_nf; +extern cpuop_func op_4eb0_0_ff; +extern cpuop_func op_4eb8_0_nf; +extern cpuop_func op_4eb8_0_ff; +extern cpuop_func op_4eb9_0_nf; +extern cpuop_func op_4eb9_0_ff; +extern cpuop_func op_4eba_0_nf; +extern cpuop_func op_4eba_0_ff; +extern cpuop_func op_4ebb_0_nf; +extern cpuop_func op_4ebb_0_ff; +extern cpuop_func op_4ed0_0_nf; +extern cpuop_func op_4ed0_0_ff; +extern cpuop_func op_4ee8_0_nf; +extern cpuop_func op_4ee8_0_ff; +extern cpuop_func op_4ef0_0_nf; +extern cpuop_func op_4ef0_0_ff; +extern cpuop_func op_4ef8_0_nf; +extern cpuop_func op_4ef8_0_ff; +extern cpuop_func op_4ef9_0_nf; +extern cpuop_func op_4ef9_0_ff; +extern cpuop_func op_4efa_0_nf; +extern cpuop_func op_4efa_0_ff; +extern cpuop_func op_4efb_0_nf; +extern cpuop_func op_4efb_0_ff; +extern cpuop_func op_5000_0_nf; +extern cpuop_func op_5000_0_ff; +extern cpuop_func op_5010_0_nf; +extern cpuop_func op_5010_0_ff; +extern cpuop_func op_5018_0_nf; +extern cpuop_func op_5018_0_ff; +extern cpuop_func op_5020_0_nf; +extern cpuop_func op_5020_0_ff; +extern cpuop_func op_5028_0_nf; +extern cpuop_func op_5028_0_ff; +extern cpuop_func op_5030_0_nf; +extern cpuop_func op_5030_0_ff; +extern cpuop_func op_5038_0_nf; +extern cpuop_func op_5038_0_ff; +extern cpuop_func op_5039_0_nf; +extern cpuop_func op_5039_0_ff; +extern cpuop_func op_5040_0_nf; +extern cpuop_func op_5040_0_ff; +extern cpuop_func op_5048_0_nf; +extern cpuop_func op_5048_0_ff; +extern cpuop_func op_5050_0_nf; +extern cpuop_func op_5050_0_ff; +extern cpuop_func op_5058_0_nf; +extern cpuop_func op_5058_0_ff; +extern cpuop_func op_5060_0_nf; +extern cpuop_func op_5060_0_ff; +extern cpuop_func op_5068_0_nf; +extern cpuop_func op_5068_0_ff; +extern cpuop_func op_5070_0_nf; +extern cpuop_func op_5070_0_ff; +extern cpuop_func op_5078_0_nf; +extern cpuop_func op_5078_0_ff; +extern cpuop_func op_5079_0_nf; +extern cpuop_func op_5079_0_ff; +extern cpuop_func op_5080_0_nf; +extern cpuop_func op_5080_0_ff; +extern cpuop_func op_5088_0_nf; +extern cpuop_func op_5088_0_ff; +extern cpuop_func op_5090_0_nf; +extern cpuop_func op_5090_0_ff; +extern cpuop_func op_5098_0_nf; +extern cpuop_func op_5098_0_ff; +extern cpuop_func op_50a0_0_nf; +extern cpuop_func op_50a0_0_ff; +extern cpuop_func op_50a8_0_nf; +extern cpuop_func op_50a8_0_ff; +extern cpuop_func op_50b0_0_nf; +extern cpuop_func op_50b0_0_ff; +extern cpuop_func op_50b8_0_nf; +extern cpuop_func op_50b8_0_ff; +extern cpuop_func op_50b9_0_nf; +extern cpuop_func op_50b9_0_ff; +extern cpuop_func op_50c0_0_nf; +extern cpuop_func op_50c0_0_ff; +extern cpuop_func op_50c8_0_nf; +extern cpuop_func op_50c8_0_ff; +extern cpuop_func op_50d0_0_nf; +extern cpuop_func op_50d0_0_ff; +extern cpuop_func op_50d8_0_nf; +extern cpuop_func op_50d8_0_ff; +extern cpuop_func op_50e0_0_nf; +extern cpuop_func op_50e0_0_ff; +extern cpuop_func op_50e8_0_nf; +extern cpuop_func op_50e8_0_ff; +extern cpuop_func op_50f0_0_nf; +extern cpuop_func op_50f0_0_ff; +extern cpuop_func op_50f8_0_nf; +extern cpuop_func op_50f8_0_ff; +extern cpuop_func op_50f9_0_nf; +extern cpuop_func op_50f9_0_ff; +extern cpuop_func op_50fa_0_nf; +extern cpuop_func op_50fa_0_ff; +extern cpuop_func op_50fb_0_nf; +extern cpuop_func op_50fb_0_ff; +extern cpuop_func op_50fc_0_nf; +extern cpuop_func op_50fc_0_ff; +extern cpuop_func op_5100_0_nf; +extern cpuop_func op_5100_0_ff; +extern cpuop_func op_5110_0_nf; +extern cpuop_func op_5110_0_ff; +extern cpuop_func op_5118_0_nf; +extern cpuop_func op_5118_0_ff; +extern cpuop_func op_5120_0_nf; +extern cpuop_func op_5120_0_ff; +extern cpuop_func op_5128_0_nf; +extern cpuop_func op_5128_0_ff; +extern cpuop_func op_5130_0_nf; +extern cpuop_func op_5130_0_ff; +extern cpuop_func op_5138_0_nf; +extern cpuop_func op_5138_0_ff; +extern cpuop_func op_5139_0_nf; +extern cpuop_func op_5139_0_ff; +extern cpuop_func op_5140_0_nf; +extern cpuop_func op_5140_0_ff; +extern cpuop_func op_5148_0_nf; +extern cpuop_func op_5148_0_ff; +extern cpuop_func op_5150_0_nf; +extern cpuop_func op_5150_0_ff; +extern cpuop_func op_5158_0_nf; +extern cpuop_func op_5158_0_ff; +extern cpuop_func op_5160_0_nf; +extern cpuop_func op_5160_0_ff; +extern cpuop_func op_5168_0_nf; +extern cpuop_func op_5168_0_ff; +extern cpuop_func op_5170_0_nf; +extern cpuop_func op_5170_0_ff; +extern cpuop_func op_5178_0_nf; +extern cpuop_func op_5178_0_ff; +extern cpuop_func op_5179_0_nf; +extern cpuop_func op_5179_0_ff; +extern cpuop_func op_5180_0_nf; +extern cpuop_func op_5180_0_ff; +extern cpuop_func op_5188_0_nf; +extern cpuop_func op_5188_0_ff; +extern cpuop_func op_5190_0_nf; +extern cpuop_func op_5190_0_ff; +extern cpuop_func op_5198_0_nf; +extern cpuop_func op_5198_0_ff; +extern cpuop_func op_51a0_0_nf; +extern cpuop_func op_51a0_0_ff; +extern cpuop_func op_51a8_0_nf; +extern cpuop_func op_51a8_0_ff; +extern cpuop_func op_51b0_0_nf; +extern cpuop_func op_51b0_0_ff; +extern cpuop_func op_51b8_0_nf; +extern cpuop_func op_51b8_0_ff; +extern cpuop_func op_51b9_0_nf; +extern cpuop_func op_51b9_0_ff; +extern cpuop_func op_51c0_0_nf; +extern cpuop_func op_51c0_0_ff; +extern cpuop_func op_51c8_0_nf; +extern cpuop_func op_51c8_0_ff; +extern cpuop_func op_51d0_0_nf; +extern cpuop_func op_51d0_0_ff; +extern cpuop_func op_51d8_0_nf; +extern cpuop_func op_51d8_0_ff; +extern cpuop_func op_51e0_0_nf; +extern cpuop_func op_51e0_0_ff; +extern cpuop_func op_51e8_0_nf; +extern cpuop_func op_51e8_0_ff; +extern cpuop_func op_51f0_0_nf; +extern cpuop_func op_51f0_0_ff; +extern cpuop_func op_51f8_0_nf; +extern cpuop_func op_51f8_0_ff; +extern cpuop_func op_51f9_0_nf; +extern cpuop_func op_51f9_0_ff; +extern cpuop_func op_51fa_0_nf; +extern cpuop_func op_51fa_0_ff; +extern cpuop_func op_51fb_0_nf; +extern cpuop_func op_51fb_0_ff; +extern cpuop_func op_51fc_0_nf; +extern cpuop_func op_51fc_0_ff; +extern cpuop_func op_52c0_0_nf; +extern cpuop_func op_52c0_0_ff; +extern cpuop_func op_52c8_0_nf; +extern cpuop_func op_52c8_0_ff; +extern cpuop_func op_52d0_0_nf; +extern cpuop_func op_52d0_0_ff; +extern cpuop_func op_52d8_0_nf; +extern cpuop_func op_52d8_0_ff; +extern cpuop_func op_52e0_0_nf; +extern cpuop_func op_52e0_0_ff; +extern cpuop_func op_52e8_0_nf; +extern cpuop_func op_52e8_0_ff; +extern cpuop_func op_52f0_0_nf; +extern cpuop_func op_52f0_0_ff; +extern cpuop_func op_52f8_0_nf; +extern cpuop_func op_52f8_0_ff; +extern cpuop_func op_52f9_0_nf; +extern cpuop_func op_52f9_0_ff; +extern cpuop_func op_52fa_0_nf; +extern cpuop_func op_52fa_0_ff; +extern cpuop_func op_52fb_0_nf; +extern cpuop_func op_52fb_0_ff; +extern cpuop_func op_52fc_0_nf; +extern cpuop_func op_52fc_0_ff; +extern cpuop_func op_53c0_0_nf; +extern cpuop_func op_53c0_0_ff; +extern cpuop_func op_53c8_0_nf; +extern cpuop_func op_53c8_0_ff; +extern cpuop_func op_53d0_0_nf; +extern cpuop_func op_53d0_0_ff; +extern cpuop_func op_53d8_0_nf; +extern cpuop_func op_53d8_0_ff; +extern cpuop_func op_53e0_0_nf; +extern cpuop_func op_53e0_0_ff; +extern cpuop_func op_53e8_0_nf; +extern cpuop_func op_53e8_0_ff; +extern cpuop_func op_53f0_0_nf; +extern cpuop_func op_53f0_0_ff; +extern cpuop_func op_53f8_0_nf; +extern cpuop_func op_53f8_0_ff; +extern cpuop_func op_53f9_0_nf; +extern cpuop_func op_53f9_0_ff; +extern cpuop_func op_53fa_0_nf; +extern cpuop_func op_53fa_0_ff; +extern cpuop_func op_53fb_0_nf; +extern cpuop_func op_53fb_0_ff; +extern cpuop_func op_53fc_0_nf; +extern cpuop_func op_53fc_0_ff; +extern cpuop_func op_54c0_0_nf; +extern cpuop_func op_54c0_0_ff; +extern cpuop_func op_54c8_0_nf; +extern cpuop_func op_54c8_0_ff; +extern cpuop_func op_54d0_0_nf; +extern cpuop_func op_54d0_0_ff; +extern cpuop_func op_54d8_0_nf; +extern cpuop_func op_54d8_0_ff; +extern cpuop_func op_54e0_0_nf; +extern cpuop_func op_54e0_0_ff; +extern cpuop_func op_54e8_0_nf; +extern cpuop_func op_54e8_0_ff; +extern cpuop_func op_54f0_0_nf; +extern cpuop_func op_54f0_0_ff; +extern cpuop_func op_54f8_0_nf; +extern cpuop_func op_54f8_0_ff; +extern cpuop_func op_54f9_0_nf; +extern cpuop_func op_54f9_0_ff; +extern cpuop_func op_54fa_0_nf; +extern cpuop_func op_54fa_0_ff; +extern cpuop_func op_54fb_0_nf; +extern cpuop_func op_54fb_0_ff; +extern cpuop_func op_54fc_0_nf; +extern cpuop_func op_54fc_0_ff; +extern cpuop_func op_55c0_0_nf; +extern cpuop_func op_55c0_0_ff; +extern cpuop_func op_55c8_0_nf; +extern cpuop_func op_55c8_0_ff; +extern cpuop_func op_55d0_0_nf; +extern cpuop_func op_55d0_0_ff; +extern cpuop_func op_55d8_0_nf; +extern cpuop_func op_55d8_0_ff; +extern cpuop_func op_55e0_0_nf; +extern cpuop_func op_55e0_0_ff; +extern cpuop_func op_55e8_0_nf; +extern cpuop_func op_55e8_0_ff; +extern cpuop_func op_55f0_0_nf; +extern cpuop_func op_55f0_0_ff; +extern cpuop_func op_55f8_0_nf; +extern cpuop_func op_55f8_0_ff; +extern cpuop_func op_55f9_0_nf; +extern cpuop_func op_55f9_0_ff; +extern cpuop_func op_55fa_0_nf; +extern cpuop_func op_55fa_0_ff; +extern cpuop_func op_55fb_0_nf; +extern cpuop_func op_55fb_0_ff; +extern cpuop_func op_55fc_0_nf; +extern cpuop_func op_55fc_0_ff; +extern cpuop_func op_56c0_0_nf; +extern cpuop_func op_56c0_0_ff; +extern cpuop_func op_56c8_0_nf; +extern cpuop_func op_56c8_0_ff; +extern cpuop_func op_56d0_0_nf; +extern cpuop_func op_56d0_0_ff; +extern cpuop_func op_56d8_0_nf; +extern cpuop_func op_56d8_0_ff; +extern cpuop_func op_56e0_0_nf; +extern cpuop_func op_56e0_0_ff; +extern cpuop_func op_56e8_0_nf; +extern cpuop_func op_56e8_0_ff; +extern cpuop_func op_56f0_0_nf; +extern cpuop_func op_56f0_0_ff; +extern cpuop_func op_56f8_0_nf; +extern cpuop_func op_56f8_0_ff; +extern cpuop_func op_56f9_0_nf; +extern cpuop_func op_56f9_0_ff; +extern cpuop_func op_56fa_0_nf; +extern cpuop_func op_56fa_0_ff; +extern cpuop_func op_56fb_0_nf; +extern cpuop_func op_56fb_0_ff; +extern cpuop_func op_56fc_0_nf; +extern cpuop_func op_56fc_0_ff; +extern cpuop_func op_57c0_0_nf; +extern cpuop_func op_57c0_0_ff; +extern cpuop_func op_57c8_0_nf; +extern cpuop_func op_57c8_0_ff; +extern cpuop_func op_57d0_0_nf; +extern cpuop_func op_57d0_0_ff; +extern cpuop_func op_57d8_0_nf; +extern cpuop_func op_57d8_0_ff; +extern cpuop_func op_57e0_0_nf; +extern cpuop_func op_57e0_0_ff; +extern cpuop_func op_57e8_0_nf; +extern cpuop_func op_57e8_0_ff; +extern cpuop_func op_57f0_0_nf; +extern cpuop_func op_57f0_0_ff; +extern cpuop_func op_57f8_0_nf; +extern cpuop_func op_57f8_0_ff; +extern cpuop_func op_57f9_0_nf; +extern cpuop_func op_57f9_0_ff; +extern cpuop_func op_57fa_0_nf; +extern cpuop_func op_57fa_0_ff; +extern cpuop_func op_57fb_0_nf; +extern cpuop_func op_57fb_0_ff; +extern cpuop_func op_57fc_0_nf; +extern cpuop_func op_57fc_0_ff; +extern cpuop_func op_58c0_0_nf; +extern cpuop_func op_58c0_0_ff; +extern cpuop_func op_58c8_0_nf; +extern cpuop_func op_58c8_0_ff; +extern cpuop_func op_58d0_0_nf; +extern cpuop_func op_58d0_0_ff; +extern cpuop_func op_58d8_0_nf; +extern cpuop_func op_58d8_0_ff; +extern cpuop_func op_58e0_0_nf; +extern cpuop_func op_58e0_0_ff; +extern cpuop_func op_58e8_0_nf; +extern cpuop_func op_58e8_0_ff; +extern cpuop_func op_58f0_0_nf; +extern cpuop_func op_58f0_0_ff; +extern cpuop_func op_58f8_0_nf; +extern cpuop_func op_58f8_0_ff; +extern cpuop_func op_58f9_0_nf; +extern cpuop_func op_58f9_0_ff; +extern cpuop_func op_58fa_0_nf; +extern cpuop_func op_58fa_0_ff; +extern cpuop_func op_58fb_0_nf; +extern cpuop_func op_58fb_0_ff; +extern cpuop_func op_58fc_0_nf; +extern cpuop_func op_58fc_0_ff; +extern cpuop_func op_59c0_0_nf; +extern cpuop_func op_59c0_0_ff; +extern cpuop_func op_59c8_0_nf; +extern cpuop_func op_59c8_0_ff; +extern cpuop_func op_59d0_0_nf; +extern cpuop_func op_59d0_0_ff; +extern cpuop_func op_59d8_0_nf; +extern cpuop_func op_59d8_0_ff; +extern cpuop_func op_59e0_0_nf; +extern cpuop_func op_59e0_0_ff; +extern cpuop_func op_59e8_0_nf; +extern cpuop_func op_59e8_0_ff; +extern cpuop_func op_59f0_0_nf; +extern cpuop_func op_59f0_0_ff; +extern cpuop_func op_59f8_0_nf; +extern cpuop_func op_59f8_0_ff; +extern cpuop_func op_59f9_0_nf; +extern cpuop_func op_59f9_0_ff; +extern cpuop_func op_59fa_0_nf; +extern cpuop_func op_59fa_0_ff; +extern cpuop_func op_59fb_0_nf; +extern cpuop_func op_59fb_0_ff; +extern cpuop_func op_59fc_0_nf; +extern cpuop_func op_59fc_0_ff; +extern cpuop_func op_5ac0_0_nf; +extern cpuop_func op_5ac0_0_ff; +extern cpuop_func op_5ac8_0_nf; +extern cpuop_func op_5ac8_0_ff; +extern cpuop_func op_5ad0_0_nf; +extern cpuop_func op_5ad0_0_ff; +extern cpuop_func op_5ad8_0_nf; +extern cpuop_func op_5ad8_0_ff; +extern cpuop_func op_5ae0_0_nf; +extern cpuop_func op_5ae0_0_ff; +extern cpuop_func op_5ae8_0_nf; +extern cpuop_func op_5ae8_0_ff; +extern cpuop_func op_5af0_0_nf; +extern cpuop_func op_5af0_0_ff; +extern cpuop_func op_5af8_0_nf; +extern cpuop_func op_5af8_0_ff; +extern cpuop_func op_5af9_0_nf; +extern cpuop_func op_5af9_0_ff; +extern cpuop_func op_5afa_0_nf; +extern cpuop_func op_5afa_0_ff; +extern cpuop_func op_5afb_0_nf; +extern cpuop_func op_5afb_0_ff; +extern cpuop_func op_5afc_0_nf; +extern cpuop_func op_5afc_0_ff; +extern cpuop_func op_5bc0_0_nf; +extern cpuop_func op_5bc0_0_ff; +extern cpuop_func op_5bc8_0_nf; +extern cpuop_func op_5bc8_0_ff; +extern cpuop_func op_5bd0_0_nf; +extern cpuop_func op_5bd0_0_ff; +extern cpuop_func op_5bd8_0_nf; +extern cpuop_func op_5bd8_0_ff; +extern cpuop_func op_5be0_0_nf; +extern cpuop_func op_5be0_0_ff; +extern cpuop_func op_5be8_0_nf; +extern cpuop_func op_5be8_0_ff; +extern cpuop_func op_5bf0_0_nf; +extern cpuop_func op_5bf0_0_ff; +extern cpuop_func op_5bf8_0_nf; +extern cpuop_func op_5bf8_0_ff; +extern cpuop_func op_5bf9_0_nf; +extern cpuop_func op_5bf9_0_ff; +extern cpuop_func op_5bfa_0_nf; +extern cpuop_func op_5bfa_0_ff; +extern cpuop_func op_5bfb_0_nf; +extern cpuop_func op_5bfb_0_ff; +extern cpuop_func op_5bfc_0_nf; +extern cpuop_func op_5bfc_0_ff; +extern cpuop_func op_5cc0_0_nf; +extern cpuop_func op_5cc0_0_ff; +extern cpuop_func op_5cc8_0_nf; +extern cpuop_func op_5cc8_0_ff; +extern cpuop_func op_5cd0_0_nf; +extern cpuop_func op_5cd0_0_ff; +extern cpuop_func op_5cd8_0_nf; +extern cpuop_func op_5cd8_0_ff; +extern cpuop_func op_5ce0_0_nf; +extern cpuop_func op_5ce0_0_ff; +extern cpuop_func op_5ce8_0_nf; +extern cpuop_func op_5ce8_0_ff; +extern cpuop_func op_5cf0_0_nf; +extern cpuop_func op_5cf0_0_ff; +extern cpuop_func op_5cf8_0_nf; +extern cpuop_func op_5cf8_0_ff; +extern cpuop_func op_5cf9_0_nf; +extern cpuop_func op_5cf9_0_ff; +extern cpuop_func op_5cfa_0_nf; +extern cpuop_func op_5cfa_0_ff; +extern cpuop_func op_5cfb_0_nf; +extern cpuop_func op_5cfb_0_ff; +extern cpuop_func op_5cfc_0_nf; +extern cpuop_func op_5cfc_0_ff; +extern cpuop_func op_5dc0_0_nf; +extern cpuop_func op_5dc0_0_ff; +extern cpuop_func op_5dc8_0_nf; +extern cpuop_func op_5dc8_0_ff; +extern cpuop_func op_5dd0_0_nf; +extern cpuop_func op_5dd0_0_ff; +extern cpuop_func op_5dd8_0_nf; +extern cpuop_func op_5dd8_0_ff; +extern cpuop_func op_5de0_0_nf; +extern cpuop_func op_5de0_0_ff; +extern cpuop_func op_5de8_0_nf; +extern cpuop_func op_5de8_0_ff; +extern cpuop_func op_5df0_0_nf; +extern cpuop_func op_5df0_0_ff; +extern cpuop_func op_5df8_0_nf; +extern cpuop_func op_5df8_0_ff; +extern cpuop_func op_5df9_0_nf; +extern cpuop_func op_5df9_0_ff; +extern cpuop_func op_5dfa_0_nf; +extern cpuop_func op_5dfa_0_ff; +extern cpuop_func op_5dfb_0_nf; +extern cpuop_func op_5dfb_0_ff; +extern cpuop_func op_5dfc_0_nf; +extern cpuop_func op_5dfc_0_ff; +extern cpuop_func op_5ec0_0_nf; +extern cpuop_func op_5ec0_0_ff; +extern cpuop_func op_5ec8_0_nf; +extern cpuop_func op_5ec8_0_ff; +extern cpuop_func op_5ed0_0_nf; +extern cpuop_func op_5ed0_0_ff; +extern cpuop_func op_5ed8_0_nf; +extern cpuop_func op_5ed8_0_ff; +extern cpuop_func op_5ee0_0_nf; +extern cpuop_func op_5ee0_0_ff; +extern cpuop_func op_5ee8_0_nf; +extern cpuop_func op_5ee8_0_ff; +extern cpuop_func op_5ef0_0_nf; +extern cpuop_func op_5ef0_0_ff; +extern cpuop_func op_5ef8_0_nf; +extern cpuop_func op_5ef8_0_ff; +extern cpuop_func op_5ef9_0_nf; +extern cpuop_func op_5ef9_0_ff; +extern cpuop_func op_5efa_0_nf; +extern cpuop_func op_5efa_0_ff; +extern cpuop_func op_5efb_0_nf; +extern cpuop_func op_5efb_0_ff; +extern cpuop_func op_5efc_0_nf; +extern cpuop_func op_5efc_0_ff; +extern cpuop_func op_5fc0_0_nf; +extern cpuop_func op_5fc0_0_ff; +extern cpuop_func op_5fc8_0_nf; +extern cpuop_func op_5fc8_0_ff; +extern cpuop_func op_5fd0_0_nf; +extern cpuop_func op_5fd0_0_ff; +extern cpuop_func op_5fd8_0_nf; +extern cpuop_func op_5fd8_0_ff; +extern cpuop_func op_5fe0_0_nf; +extern cpuop_func op_5fe0_0_ff; +extern cpuop_func op_5fe8_0_nf; +extern cpuop_func op_5fe8_0_ff; +extern cpuop_func op_5ff0_0_nf; +extern cpuop_func op_5ff0_0_ff; +extern cpuop_func op_5ff8_0_nf; +extern cpuop_func op_5ff8_0_ff; +extern cpuop_func op_5ff9_0_nf; +extern cpuop_func op_5ff9_0_ff; +extern cpuop_func op_5ffa_0_nf; +extern cpuop_func op_5ffa_0_ff; +extern cpuop_func op_5ffb_0_nf; +extern cpuop_func op_5ffb_0_ff; +extern cpuop_func op_5ffc_0_nf; +extern cpuop_func op_5ffc_0_ff; +extern cpuop_func op_6000_0_nf; +extern cpuop_func op_6000_0_ff; +extern cpuop_func op_6001_0_nf; +extern cpuop_func op_6001_0_ff; +extern cpuop_func op_60ff_0_nf; +extern cpuop_func op_60ff_0_ff; +extern cpuop_func op_6100_0_nf; +extern cpuop_func op_6100_0_ff; +extern cpuop_func op_6101_0_nf; +extern cpuop_func op_6101_0_ff; +extern cpuop_func op_61ff_0_nf; +extern cpuop_func op_61ff_0_ff; +extern cpuop_func op_6200_0_nf; +extern cpuop_func op_6200_0_ff; +extern cpuop_func op_6201_0_nf; +extern cpuop_func op_6201_0_ff; +extern cpuop_func op_62ff_0_nf; +extern cpuop_func op_62ff_0_ff; +extern cpuop_func op_6300_0_nf; +extern cpuop_func op_6300_0_ff; +extern cpuop_func op_6301_0_nf; +extern cpuop_func op_6301_0_ff; +extern cpuop_func op_63ff_0_nf; +extern cpuop_func op_63ff_0_ff; +extern cpuop_func op_6400_0_nf; +extern cpuop_func op_6400_0_ff; +extern cpuop_func op_6401_0_nf; +extern cpuop_func op_6401_0_ff; +extern cpuop_func op_64ff_0_nf; +extern cpuop_func op_64ff_0_ff; +extern cpuop_func op_6500_0_nf; +extern cpuop_func op_6500_0_ff; +extern cpuop_func op_6501_0_nf; +extern cpuop_func op_6501_0_ff; +extern cpuop_func op_65ff_0_nf; +extern cpuop_func op_65ff_0_ff; +extern cpuop_func op_6600_0_nf; +extern cpuop_func op_6600_0_ff; +extern cpuop_func op_6601_0_nf; +extern cpuop_func op_6601_0_ff; +extern cpuop_func op_66ff_0_nf; +extern cpuop_func op_66ff_0_ff; +extern cpuop_func op_6700_0_nf; +extern cpuop_func op_6700_0_ff; +extern cpuop_func op_6701_0_nf; +extern cpuop_func op_6701_0_ff; +extern cpuop_func op_67ff_0_nf; +extern cpuop_func op_67ff_0_ff; +extern cpuop_func op_6800_0_nf; +extern cpuop_func op_6800_0_ff; +extern cpuop_func op_6801_0_nf; +extern cpuop_func op_6801_0_ff; +extern cpuop_func op_68ff_0_nf; +extern cpuop_func op_68ff_0_ff; +extern cpuop_func op_6900_0_nf; +extern cpuop_func op_6900_0_ff; +extern cpuop_func op_6901_0_nf; +extern cpuop_func op_6901_0_ff; +extern cpuop_func op_69ff_0_nf; +extern cpuop_func op_69ff_0_ff; +extern cpuop_func op_6a00_0_nf; +extern cpuop_func op_6a00_0_ff; +extern cpuop_func op_6a01_0_nf; +extern cpuop_func op_6a01_0_ff; +extern cpuop_func op_6aff_0_nf; +extern cpuop_func op_6aff_0_ff; +extern cpuop_func op_6b00_0_nf; +extern cpuop_func op_6b00_0_ff; +extern cpuop_func op_6b01_0_nf; +extern cpuop_func op_6b01_0_ff; +extern cpuop_func op_6bff_0_nf; +extern cpuop_func op_6bff_0_ff; +extern cpuop_func op_6c00_0_nf; +extern cpuop_func op_6c00_0_ff; +extern cpuop_func op_6c01_0_nf; +extern cpuop_func op_6c01_0_ff; +extern cpuop_func op_6cff_0_nf; +extern cpuop_func op_6cff_0_ff; +extern cpuop_func op_6d00_0_nf; +extern cpuop_func op_6d00_0_ff; +extern cpuop_func op_6d01_0_nf; +extern cpuop_func op_6d01_0_ff; +extern cpuop_func op_6dff_0_nf; +extern cpuop_func op_6dff_0_ff; +extern cpuop_func op_6e00_0_nf; +extern cpuop_func op_6e00_0_ff; +extern cpuop_func op_6e01_0_nf; +extern cpuop_func op_6e01_0_ff; +extern cpuop_func op_6eff_0_nf; +extern cpuop_func op_6eff_0_ff; +extern cpuop_func op_6f00_0_nf; +extern cpuop_func op_6f00_0_ff; +extern cpuop_func op_6f01_0_nf; +extern cpuop_func op_6f01_0_ff; +extern cpuop_func op_6fff_0_nf; +extern cpuop_func op_6fff_0_ff; +extern cpuop_func op_7000_0_nf; +extern cpuop_func op_7000_0_ff; +extern cpuop_func op_7100_0_nf; +extern cpuop_func op_7100_0_ff; +extern cpuop_func op_7101_0_nf; +extern cpuop_func op_7101_0_ff; +extern cpuop_func op_8000_0_nf; +extern cpuop_func op_8000_0_ff; +extern cpuop_func op_8010_0_nf; +extern cpuop_func op_8010_0_ff; +extern cpuop_func op_8018_0_nf; +extern cpuop_func op_8018_0_ff; +extern cpuop_func op_8020_0_nf; +extern cpuop_func op_8020_0_ff; +extern cpuop_func op_8028_0_nf; +extern cpuop_func op_8028_0_ff; +extern cpuop_func op_8030_0_nf; +extern cpuop_func op_8030_0_ff; +extern cpuop_func op_8038_0_nf; +extern cpuop_func op_8038_0_ff; +extern cpuop_func op_8039_0_nf; +extern cpuop_func op_8039_0_ff; +extern cpuop_func op_803a_0_nf; +extern cpuop_func op_803a_0_ff; +extern cpuop_func op_803b_0_nf; +extern cpuop_func op_803b_0_ff; +extern cpuop_func op_803c_0_nf; +extern cpuop_func op_803c_0_ff; +extern cpuop_func op_8040_0_nf; +extern cpuop_func op_8040_0_ff; +extern cpuop_func op_8050_0_nf; +extern cpuop_func op_8050_0_ff; +extern cpuop_func op_8058_0_nf; +extern cpuop_func op_8058_0_ff; +extern cpuop_func op_8060_0_nf; +extern cpuop_func op_8060_0_ff; +extern cpuop_func op_8068_0_nf; +extern cpuop_func op_8068_0_ff; +extern cpuop_func op_8070_0_nf; +extern cpuop_func op_8070_0_ff; +extern cpuop_func op_8078_0_nf; +extern cpuop_func op_8078_0_ff; +extern cpuop_func op_8079_0_nf; +extern cpuop_func op_8079_0_ff; +extern cpuop_func op_807a_0_nf; +extern cpuop_func op_807a_0_ff; +extern cpuop_func op_807b_0_nf; +extern cpuop_func op_807b_0_ff; +extern cpuop_func op_807c_0_nf; +extern cpuop_func op_807c_0_ff; +extern cpuop_func op_8080_0_nf; +extern cpuop_func op_8080_0_ff; +extern cpuop_func op_8090_0_nf; +extern cpuop_func op_8090_0_ff; +extern cpuop_func op_8098_0_nf; +extern cpuop_func op_8098_0_ff; +extern cpuop_func op_80a0_0_nf; +extern cpuop_func op_80a0_0_ff; +extern cpuop_func op_80a8_0_nf; +extern cpuop_func op_80a8_0_ff; +extern cpuop_func op_80b0_0_nf; +extern cpuop_func op_80b0_0_ff; +extern cpuop_func op_80b8_0_nf; +extern cpuop_func op_80b8_0_ff; +extern cpuop_func op_80b9_0_nf; +extern cpuop_func op_80b9_0_ff; +extern cpuop_func op_80ba_0_nf; +extern cpuop_func op_80ba_0_ff; +extern cpuop_func op_80bb_0_nf; +extern cpuop_func op_80bb_0_ff; +extern cpuop_func op_80bc_0_nf; +extern cpuop_func op_80bc_0_ff; +extern cpuop_func op_80c0_0_nf; +extern cpuop_func op_80c0_0_ff; +extern cpuop_func op_80d0_0_nf; +extern cpuop_func op_80d0_0_ff; +extern cpuop_func op_80d8_0_nf; +extern cpuop_func op_80d8_0_ff; +extern cpuop_func op_80e0_0_nf; +extern cpuop_func op_80e0_0_ff; +extern cpuop_func op_80e8_0_nf; +extern cpuop_func op_80e8_0_ff; +extern cpuop_func op_80f0_0_nf; +extern cpuop_func op_80f0_0_ff; +extern cpuop_func op_80f8_0_nf; +extern cpuop_func op_80f8_0_ff; +extern cpuop_func op_80f9_0_nf; +extern cpuop_func op_80f9_0_ff; +extern cpuop_func op_80fa_0_nf; +extern cpuop_func op_80fa_0_ff; +extern cpuop_func op_80fb_0_nf; +extern cpuop_func op_80fb_0_ff; +extern cpuop_func op_80fc_0_nf; +extern cpuop_func op_80fc_0_ff; +extern cpuop_func op_8100_0_nf; +extern cpuop_func op_8100_0_ff; +extern cpuop_func op_8108_0_nf; +extern cpuop_func op_8108_0_ff; +extern cpuop_func op_8110_0_nf; +extern cpuop_func op_8110_0_ff; +extern cpuop_func op_8118_0_nf; +extern cpuop_func op_8118_0_ff; +extern cpuop_func op_8120_0_nf; +extern cpuop_func op_8120_0_ff; +extern cpuop_func op_8128_0_nf; +extern cpuop_func op_8128_0_ff; +extern cpuop_func op_8130_0_nf; +extern cpuop_func op_8130_0_ff; +extern cpuop_func op_8138_0_nf; +extern cpuop_func op_8138_0_ff; +extern cpuop_func op_8139_0_nf; +extern cpuop_func op_8139_0_ff; +extern cpuop_func op_8140_0_nf; +extern cpuop_func op_8140_0_ff; +extern cpuop_func op_8148_0_nf; +extern cpuop_func op_8148_0_ff; +extern cpuop_func op_8150_0_nf; +extern cpuop_func op_8150_0_ff; +extern cpuop_func op_8158_0_nf; +extern cpuop_func op_8158_0_ff; +extern cpuop_func op_8160_0_nf; +extern cpuop_func op_8160_0_ff; +extern cpuop_func op_8168_0_nf; +extern cpuop_func op_8168_0_ff; +extern cpuop_func op_8170_0_nf; +extern cpuop_func op_8170_0_ff; +extern cpuop_func op_8178_0_nf; +extern cpuop_func op_8178_0_ff; +extern cpuop_func op_8179_0_nf; +extern cpuop_func op_8179_0_ff; +extern cpuop_func op_8180_0_nf; +extern cpuop_func op_8180_0_ff; +extern cpuop_func op_8188_0_nf; +extern cpuop_func op_8188_0_ff; +extern cpuop_func op_8190_0_nf; +extern cpuop_func op_8190_0_ff; +extern cpuop_func op_8198_0_nf; +extern cpuop_func op_8198_0_ff; +extern cpuop_func op_81a0_0_nf; +extern cpuop_func op_81a0_0_ff; +extern cpuop_func op_81a8_0_nf; +extern cpuop_func op_81a8_0_ff; +extern cpuop_func op_81b0_0_nf; +extern cpuop_func op_81b0_0_ff; +extern cpuop_func op_81b8_0_nf; +extern cpuop_func op_81b8_0_ff; +extern cpuop_func op_81b9_0_nf; +extern cpuop_func op_81b9_0_ff; +extern cpuop_func op_81c0_0_nf; +extern cpuop_func op_81c0_0_ff; +extern cpuop_func op_81d0_0_nf; +extern cpuop_func op_81d0_0_ff; +extern cpuop_func op_81d8_0_nf; +extern cpuop_func op_81d8_0_ff; +extern cpuop_func op_81e0_0_nf; +extern cpuop_func op_81e0_0_ff; +extern cpuop_func op_81e8_0_nf; +extern cpuop_func op_81e8_0_ff; +extern cpuop_func op_81f0_0_nf; +extern cpuop_func op_81f0_0_ff; +extern cpuop_func op_81f8_0_nf; +extern cpuop_func op_81f8_0_ff; +extern cpuop_func op_81f9_0_nf; +extern cpuop_func op_81f9_0_ff; +extern cpuop_func op_81fa_0_nf; +extern cpuop_func op_81fa_0_ff; +extern cpuop_func op_81fb_0_nf; +extern cpuop_func op_81fb_0_ff; +extern cpuop_func op_81fc_0_nf; +extern cpuop_func op_81fc_0_ff; +extern cpuop_func op_9000_0_nf; +extern cpuop_func op_9000_0_ff; +extern cpuop_func op_9010_0_nf; +extern cpuop_func op_9010_0_ff; +extern cpuop_func op_9018_0_nf; +extern cpuop_func op_9018_0_ff; +extern cpuop_func op_9020_0_nf; +extern cpuop_func op_9020_0_ff; +extern cpuop_func op_9028_0_nf; +extern cpuop_func op_9028_0_ff; +extern cpuop_func op_9030_0_nf; +extern cpuop_func op_9030_0_ff; +extern cpuop_func op_9038_0_nf; +extern cpuop_func op_9038_0_ff; +extern cpuop_func op_9039_0_nf; +extern cpuop_func op_9039_0_ff; +extern cpuop_func op_903a_0_nf; +extern cpuop_func op_903a_0_ff; +extern cpuop_func op_903b_0_nf; +extern cpuop_func op_903b_0_ff; +extern cpuop_func op_903c_0_nf; +extern cpuop_func op_903c_0_ff; +extern cpuop_func op_9040_0_nf; +extern cpuop_func op_9040_0_ff; +extern cpuop_func op_9048_0_nf; +extern cpuop_func op_9048_0_ff; +extern cpuop_func op_9050_0_nf; +extern cpuop_func op_9050_0_ff; +extern cpuop_func op_9058_0_nf; +extern cpuop_func op_9058_0_ff; +extern cpuop_func op_9060_0_nf; +extern cpuop_func op_9060_0_ff; +extern cpuop_func op_9068_0_nf; +extern cpuop_func op_9068_0_ff; +extern cpuop_func op_9070_0_nf; +extern cpuop_func op_9070_0_ff; +extern cpuop_func op_9078_0_nf; +extern cpuop_func op_9078_0_ff; +extern cpuop_func op_9079_0_nf; +extern cpuop_func op_9079_0_ff; +extern cpuop_func op_907a_0_nf; +extern cpuop_func op_907a_0_ff; +extern cpuop_func op_907b_0_nf; +extern cpuop_func op_907b_0_ff; +extern cpuop_func op_907c_0_nf; +extern cpuop_func op_907c_0_ff; +extern cpuop_func op_9080_0_nf; +extern cpuop_func op_9080_0_ff; +extern cpuop_func op_9088_0_nf; +extern cpuop_func op_9088_0_ff; +extern cpuop_func op_9090_0_nf; +extern cpuop_func op_9090_0_ff; +extern cpuop_func op_9098_0_nf; +extern cpuop_func op_9098_0_ff; +extern cpuop_func op_90a0_0_nf; +extern cpuop_func op_90a0_0_ff; +extern cpuop_func op_90a8_0_nf; +extern cpuop_func op_90a8_0_ff; +extern cpuop_func op_90b0_0_nf; +extern cpuop_func op_90b0_0_ff; +extern cpuop_func op_90b8_0_nf; +extern cpuop_func op_90b8_0_ff; +extern cpuop_func op_90b9_0_nf; +extern cpuop_func op_90b9_0_ff; +extern cpuop_func op_90ba_0_nf; +extern cpuop_func op_90ba_0_ff; +extern cpuop_func op_90bb_0_nf; +extern cpuop_func op_90bb_0_ff; +extern cpuop_func op_90bc_0_nf; +extern cpuop_func op_90bc_0_ff; +extern cpuop_func op_90c0_0_nf; +extern cpuop_func op_90c0_0_ff; +extern cpuop_func op_90c8_0_nf; +extern cpuop_func op_90c8_0_ff; +extern cpuop_func op_90d0_0_nf; +extern cpuop_func op_90d0_0_ff; +extern cpuop_func op_90d8_0_nf; +extern cpuop_func op_90d8_0_ff; +extern cpuop_func op_90e0_0_nf; +extern cpuop_func op_90e0_0_ff; +extern cpuop_func op_90e8_0_nf; +extern cpuop_func op_90e8_0_ff; +extern cpuop_func op_90f0_0_nf; +extern cpuop_func op_90f0_0_ff; +extern cpuop_func op_90f8_0_nf; +extern cpuop_func op_90f8_0_ff; +extern cpuop_func op_90f9_0_nf; +extern cpuop_func op_90f9_0_ff; +extern cpuop_func op_90fa_0_nf; +extern cpuop_func op_90fa_0_ff; +extern cpuop_func op_90fb_0_nf; +extern cpuop_func op_90fb_0_ff; +extern cpuop_func op_90fc_0_nf; +extern cpuop_func op_90fc_0_ff; +extern cpuop_func op_9100_0_nf; +extern cpuop_func op_9100_0_ff; +extern cpuop_func op_9108_0_nf; +extern cpuop_func op_9108_0_ff; +extern cpuop_func op_9110_0_nf; +extern cpuop_func op_9110_0_ff; +extern cpuop_func op_9118_0_nf; +extern cpuop_func op_9118_0_ff; +extern cpuop_func op_9120_0_nf; +extern cpuop_func op_9120_0_ff; +extern cpuop_func op_9128_0_nf; +extern cpuop_func op_9128_0_ff; +extern cpuop_func op_9130_0_nf; +extern cpuop_func op_9130_0_ff; +extern cpuop_func op_9138_0_nf; +extern cpuop_func op_9138_0_ff; +extern cpuop_func op_9139_0_nf; +extern cpuop_func op_9139_0_ff; +extern cpuop_func op_9140_0_nf; +extern cpuop_func op_9140_0_ff; +extern cpuop_func op_9148_0_nf; +extern cpuop_func op_9148_0_ff; +extern cpuop_func op_9150_0_nf; +extern cpuop_func op_9150_0_ff; +extern cpuop_func op_9158_0_nf; +extern cpuop_func op_9158_0_ff; +extern cpuop_func op_9160_0_nf; +extern cpuop_func op_9160_0_ff; +extern cpuop_func op_9168_0_nf; +extern cpuop_func op_9168_0_ff; +extern cpuop_func op_9170_0_nf; +extern cpuop_func op_9170_0_ff; +extern cpuop_func op_9178_0_nf; +extern cpuop_func op_9178_0_ff; +extern cpuop_func op_9179_0_nf; +extern cpuop_func op_9179_0_ff; +extern cpuop_func op_9180_0_nf; +extern cpuop_func op_9180_0_ff; +extern cpuop_func op_9188_0_nf; +extern cpuop_func op_9188_0_ff; +extern cpuop_func op_9190_0_nf; +extern cpuop_func op_9190_0_ff; +extern cpuop_func op_9198_0_nf; +extern cpuop_func op_9198_0_ff; +extern cpuop_func op_91a0_0_nf; +extern cpuop_func op_91a0_0_ff; +extern cpuop_func op_91a8_0_nf; +extern cpuop_func op_91a8_0_ff; +extern cpuop_func op_91b0_0_nf; +extern cpuop_func op_91b0_0_ff; +extern cpuop_func op_91b8_0_nf; +extern cpuop_func op_91b8_0_ff; +extern cpuop_func op_91b9_0_nf; +extern cpuop_func op_91b9_0_ff; +extern cpuop_func op_91c0_0_nf; +extern cpuop_func op_91c0_0_ff; +extern cpuop_func op_91c8_0_nf; +extern cpuop_func op_91c8_0_ff; +extern cpuop_func op_91d0_0_nf; +extern cpuop_func op_91d0_0_ff; +extern cpuop_func op_91d8_0_nf; +extern cpuop_func op_91d8_0_ff; +extern cpuop_func op_91e0_0_nf; +extern cpuop_func op_91e0_0_ff; +extern cpuop_func op_91e8_0_nf; +extern cpuop_func op_91e8_0_ff; +extern cpuop_func op_91f0_0_nf; +extern cpuop_func op_91f0_0_ff; +extern cpuop_func op_91f8_0_nf; +extern cpuop_func op_91f8_0_ff; +extern cpuop_func op_91f9_0_nf; +extern cpuop_func op_91f9_0_ff; +extern cpuop_func op_91fa_0_nf; +extern cpuop_func op_91fa_0_ff; +extern cpuop_func op_91fb_0_nf; +extern cpuop_func op_91fb_0_ff; +extern cpuop_func op_91fc_0_nf; +extern cpuop_func op_91fc_0_ff; +extern cpuop_func op_b000_0_nf; +extern cpuop_func op_b000_0_ff; +extern cpuop_func op_b010_0_nf; +extern cpuop_func op_b010_0_ff; +extern cpuop_func op_b018_0_nf; +extern cpuop_func op_b018_0_ff; +extern cpuop_func op_b020_0_nf; +extern cpuop_func op_b020_0_ff; +extern cpuop_func op_b028_0_nf; +extern cpuop_func op_b028_0_ff; +extern cpuop_func op_b030_0_nf; +extern cpuop_func op_b030_0_ff; +extern cpuop_func op_b038_0_nf; +extern cpuop_func op_b038_0_ff; +extern cpuop_func op_b039_0_nf; +extern cpuop_func op_b039_0_ff; +extern cpuop_func op_b03a_0_nf; +extern cpuop_func op_b03a_0_ff; +extern cpuop_func op_b03b_0_nf; +extern cpuop_func op_b03b_0_ff; +extern cpuop_func op_b03c_0_nf; +extern cpuop_func op_b03c_0_ff; +extern cpuop_func op_b040_0_nf; +extern cpuop_func op_b040_0_ff; +extern cpuop_func op_b048_0_nf; +extern cpuop_func op_b048_0_ff; +extern cpuop_func op_b050_0_nf; +extern cpuop_func op_b050_0_ff; +extern cpuop_func op_b058_0_nf; +extern cpuop_func op_b058_0_ff; +extern cpuop_func op_b060_0_nf; +extern cpuop_func op_b060_0_ff; +extern cpuop_func op_b068_0_nf; +extern cpuop_func op_b068_0_ff; +extern cpuop_func op_b070_0_nf; +extern cpuop_func op_b070_0_ff; +extern cpuop_func op_b078_0_nf; +extern cpuop_func op_b078_0_ff; +extern cpuop_func op_b079_0_nf; +extern cpuop_func op_b079_0_ff; +extern cpuop_func op_b07a_0_nf; +extern cpuop_func op_b07a_0_ff; +extern cpuop_func op_b07b_0_nf; +extern cpuop_func op_b07b_0_ff; +extern cpuop_func op_b07c_0_nf; +extern cpuop_func op_b07c_0_ff; +extern cpuop_func op_b080_0_nf; +extern cpuop_func op_b080_0_ff; +extern cpuop_func op_b088_0_nf; +extern cpuop_func op_b088_0_ff; +extern cpuop_func op_b090_0_nf; +extern cpuop_func op_b090_0_ff; +extern cpuop_func op_b098_0_nf; +extern cpuop_func op_b098_0_ff; +extern cpuop_func op_b0a0_0_nf; +extern cpuop_func op_b0a0_0_ff; +extern cpuop_func op_b0a8_0_nf; +extern cpuop_func op_b0a8_0_ff; +extern cpuop_func op_b0b0_0_nf; +extern cpuop_func op_b0b0_0_ff; +extern cpuop_func op_b0b8_0_nf; +extern cpuop_func op_b0b8_0_ff; +extern cpuop_func op_b0b9_0_nf; +extern cpuop_func op_b0b9_0_ff; +extern cpuop_func op_b0ba_0_nf; +extern cpuop_func op_b0ba_0_ff; +extern cpuop_func op_b0bb_0_nf; +extern cpuop_func op_b0bb_0_ff; +extern cpuop_func op_b0bc_0_nf; +extern cpuop_func op_b0bc_0_ff; +extern cpuop_func op_b0c0_0_nf; +extern cpuop_func op_b0c0_0_ff; +extern cpuop_func op_b0c8_0_nf; +extern cpuop_func op_b0c8_0_ff; +extern cpuop_func op_b0d0_0_nf; +extern cpuop_func op_b0d0_0_ff; +extern cpuop_func op_b0d8_0_nf; +extern cpuop_func op_b0d8_0_ff; +extern cpuop_func op_b0e0_0_nf; +extern cpuop_func op_b0e0_0_ff; +extern cpuop_func op_b0e8_0_nf; +extern cpuop_func op_b0e8_0_ff; +extern cpuop_func op_b0f0_0_nf; +extern cpuop_func op_b0f0_0_ff; +extern cpuop_func op_b0f8_0_nf; +extern cpuop_func op_b0f8_0_ff; +extern cpuop_func op_b0f9_0_nf; +extern cpuop_func op_b0f9_0_ff; +extern cpuop_func op_b0fa_0_nf; +extern cpuop_func op_b0fa_0_ff; +extern cpuop_func op_b0fb_0_nf; +extern cpuop_func op_b0fb_0_ff; +extern cpuop_func op_b0fc_0_nf; +extern cpuop_func op_b0fc_0_ff; +extern cpuop_func op_b100_0_nf; +extern cpuop_func op_b100_0_ff; +extern cpuop_func op_b108_0_nf; +extern cpuop_func op_b108_0_ff; +extern cpuop_func op_b110_0_nf; +extern cpuop_func op_b110_0_ff; +extern cpuop_func op_b118_0_nf; +extern cpuop_func op_b118_0_ff; +extern cpuop_func op_b120_0_nf; +extern cpuop_func op_b120_0_ff; +extern cpuop_func op_b128_0_nf; +extern cpuop_func op_b128_0_ff; +extern cpuop_func op_b130_0_nf; +extern cpuop_func op_b130_0_ff; +extern cpuop_func op_b138_0_nf; +extern cpuop_func op_b138_0_ff; +extern cpuop_func op_b139_0_nf; +extern cpuop_func op_b139_0_ff; +extern cpuop_func op_b140_0_nf; +extern cpuop_func op_b140_0_ff; +extern cpuop_func op_b148_0_nf; +extern cpuop_func op_b148_0_ff; +extern cpuop_func op_b150_0_nf; +extern cpuop_func op_b150_0_ff; +extern cpuop_func op_b158_0_nf; +extern cpuop_func op_b158_0_ff; +extern cpuop_func op_b160_0_nf; +extern cpuop_func op_b160_0_ff; +extern cpuop_func op_b168_0_nf; +extern cpuop_func op_b168_0_ff; +extern cpuop_func op_b170_0_nf; +extern cpuop_func op_b170_0_ff; +extern cpuop_func op_b178_0_nf; +extern cpuop_func op_b178_0_ff; +extern cpuop_func op_b179_0_nf; +extern cpuop_func op_b179_0_ff; +extern cpuop_func op_b180_0_nf; +extern cpuop_func op_b180_0_ff; +extern cpuop_func op_b188_0_nf; +extern cpuop_func op_b188_0_ff; +extern cpuop_func op_b190_0_nf; +extern cpuop_func op_b190_0_ff; +extern cpuop_func op_b198_0_nf; +extern cpuop_func op_b198_0_ff; +extern cpuop_func op_b1a0_0_nf; +extern cpuop_func op_b1a0_0_ff; +extern cpuop_func op_b1a8_0_nf; +extern cpuop_func op_b1a8_0_ff; +extern cpuop_func op_b1b0_0_nf; +extern cpuop_func op_b1b0_0_ff; +extern cpuop_func op_b1b8_0_nf; +extern cpuop_func op_b1b8_0_ff; +extern cpuop_func op_b1b9_0_nf; +extern cpuop_func op_b1b9_0_ff; +extern cpuop_func op_b1c0_0_nf; +extern cpuop_func op_b1c0_0_ff; +extern cpuop_func op_b1c8_0_nf; +extern cpuop_func op_b1c8_0_ff; +extern cpuop_func op_b1d0_0_nf; +extern cpuop_func op_b1d0_0_ff; +extern cpuop_func op_b1d8_0_nf; +extern cpuop_func op_b1d8_0_ff; +extern cpuop_func op_b1e0_0_nf; +extern cpuop_func op_b1e0_0_ff; +extern cpuop_func op_b1e8_0_nf; +extern cpuop_func op_b1e8_0_ff; +extern cpuop_func op_b1f0_0_nf; +extern cpuop_func op_b1f0_0_ff; +extern cpuop_func op_b1f8_0_nf; +extern cpuop_func op_b1f8_0_ff; +extern cpuop_func op_b1f9_0_nf; +extern cpuop_func op_b1f9_0_ff; +extern cpuop_func op_b1fa_0_nf; +extern cpuop_func op_b1fa_0_ff; +extern cpuop_func op_b1fb_0_nf; +extern cpuop_func op_b1fb_0_ff; +extern cpuop_func op_b1fc_0_nf; +extern cpuop_func op_b1fc_0_ff; +extern cpuop_func op_c000_0_nf; +extern cpuop_func op_c000_0_ff; +extern cpuop_func op_c010_0_nf; +extern cpuop_func op_c010_0_ff; +extern cpuop_func op_c018_0_nf; +extern cpuop_func op_c018_0_ff; +extern cpuop_func op_c020_0_nf; +extern cpuop_func op_c020_0_ff; +extern cpuop_func op_c028_0_nf; +extern cpuop_func op_c028_0_ff; +extern cpuop_func op_c030_0_nf; +extern cpuop_func op_c030_0_ff; +extern cpuop_func op_c038_0_nf; +extern cpuop_func op_c038_0_ff; +extern cpuop_func op_c039_0_nf; +extern cpuop_func op_c039_0_ff; +extern cpuop_func op_c03a_0_nf; +extern cpuop_func op_c03a_0_ff; +extern cpuop_func op_c03b_0_nf; +extern cpuop_func op_c03b_0_ff; +extern cpuop_func op_c03c_0_nf; +extern cpuop_func op_c03c_0_ff; +extern cpuop_func op_c040_0_nf; +extern cpuop_func op_c040_0_ff; +extern cpuop_func op_c050_0_nf; +extern cpuop_func op_c050_0_ff; +extern cpuop_func op_c058_0_nf; +extern cpuop_func op_c058_0_ff; +extern cpuop_func op_c060_0_nf; +extern cpuop_func op_c060_0_ff; +extern cpuop_func op_c068_0_nf; +extern cpuop_func op_c068_0_ff; +extern cpuop_func op_c070_0_nf; +extern cpuop_func op_c070_0_ff; +extern cpuop_func op_c078_0_nf; +extern cpuop_func op_c078_0_ff; +extern cpuop_func op_c079_0_nf; +extern cpuop_func op_c079_0_ff; +extern cpuop_func op_c07a_0_nf; +extern cpuop_func op_c07a_0_ff; +extern cpuop_func op_c07b_0_nf; +extern cpuop_func op_c07b_0_ff; +extern cpuop_func op_c07c_0_nf; +extern cpuop_func op_c07c_0_ff; +extern cpuop_func op_c080_0_nf; +extern cpuop_func op_c080_0_ff; +extern cpuop_func op_c090_0_nf; +extern cpuop_func op_c090_0_ff; +extern cpuop_func op_c098_0_nf; +extern cpuop_func op_c098_0_ff; +extern cpuop_func op_c0a0_0_nf; +extern cpuop_func op_c0a0_0_ff; +extern cpuop_func op_c0a8_0_nf; +extern cpuop_func op_c0a8_0_ff; +extern cpuop_func op_c0b0_0_nf; +extern cpuop_func op_c0b0_0_ff; +extern cpuop_func op_c0b8_0_nf; +extern cpuop_func op_c0b8_0_ff; +extern cpuop_func op_c0b9_0_nf; +extern cpuop_func op_c0b9_0_ff; +extern cpuop_func op_c0ba_0_nf; +extern cpuop_func op_c0ba_0_ff; +extern cpuop_func op_c0bb_0_nf; +extern cpuop_func op_c0bb_0_ff; +extern cpuop_func op_c0bc_0_nf; +extern cpuop_func op_c0bc_0_ff; +extern cpuop_func op_c0c0_0_nf; +extern cpuop_func op_c0c0_0_ff; +extern cpuop_func op_c0d0_0_nf; +extern cpuop_func op_c0d0_0_ff; +extern cpuop_func op_c0d8_0_nf; +extern cpuop_func op_c0d8_0_ff; +extern cpuop_func op_c0e0_0_nf; +extern cpuop_func op_c0e0_0_ff; +extern cpuop_func op_c0e8_0_nf; +extern cpuop_func op_c0e8_0_ff; +extern cpuop_func op_c0f0_0_nf; +extern cpuop_func op_c0f0_0_ff; +extern cpuop_func op_c0f8_0_nf; +extern cpuop_func op_c0f8_0_ff; +extern cpuop_func op_c0f9_0_nf; +extern cpuop_func op_c0f9_0_ff; +extern cpuop_func op_c0fa_0_nf; +extern cpuop_func op_c0fa_0_ff; +extern cpuop_func op_c0fb_0_nf; +extern cpuop_func op_c0fb_0_ff; +extern cpuop_func op_c0fc_0_nf; +extern cpuop_func op_c0fc_0_ff; +extern cpuop_func op_c100_0_nf; +extern cpuop_func op_c100_0_ff; +extern cpuop_func op_c108_0_nf; +extern cpuop_func op_c108_0_ff; +extern cpuop_func op_c110_0_nf; +extern cpuop_func op_c110_0_ff; +extern cpuop_func op_c118_0_nf; +extern cpuop_func op_c118_0_ff; +extern cpuop_func op_c120_0_nf; +extern cpuop_func op_c120_0_ff; +extern cpuop_func op_c128_0_nf; +extern cpuop_func op_c128_0_ff; +extern cpuop_func op_c130_0_nf; +extern cpuop_func op_c130_0_ff; +extern cpuop_func op_c138_0_nf; +extern cpuop_func op_c138_0_ff; +extern cpuop_func op_c139_0_nf; +extern cpuop_func op_c139_0_ff; +extern cpuop_func op_c140_0_nf; +extern cpuop_func op_c140_0_ff; +extern cpuop_func op_c148_0_nf; +extern cpuop_func op_c148_0_ff; +extern cpuop_func op_c150_0_nf; +extern cpuop_func op_c150_0_ff; +extern cpuop_func op_c158_0_nf; +extern cpuop_func op_c158_0_ff; +extern cpuop_func op_c160_0_nf; +extern cpuop_func op_c160_0_ff; +extern cpuop_func op_c168_0_nf; +extern cpuop_func op_c168_0_ff; +extern cpuop_func op_c170_0_nf; +extern cpuop_func op_c170_0_ff; +extern cpuop_func op_c178_0_nf; +extern cpuop_func op_c178_0_ff; +extern cpuop_func op_c179_0_nf; +extern cpuop_func op_c179_0_ff; +extern cpuop_func op_c188_0_nf; +extern cpuop_func op_c188_0_ff; +extern cpuop_func op_c190_0_nf; +extern cpuop_func op_c190_0_ff; +extern cpuop_func op_c198_0_nf; +extern cpuop_func op_c198_0_ff; +extern cpuop_func op_c1a0_0_nf; +extern cpuop_func op_c1a0_0_ff; +extern cpuop_func op_c1a8_0_nf; +extern cpuop_func op_c1a8_0_ff; +extern cpuop_func op_c1b0_0_nf; +extern cpuop_func op_c1b0_0_ff; +extern cpuop_func op_c1b8_0_nf; +extern cpuop_func op_c1b8_0_ff; +extern cpuop_func op_c1b9_0_nf; +extern cpuop_func op_c1b9_0_ff; +extern cpuop_func op_c1c0_0_nf; +extern cpuop_func op_c1c0_0_ff; +extern cpuop_func op_c1d0_0_nf; +extern cpuop_func op_c1d0_0_ff; +extern cpuop_func op_c1d8_0_nf; +extern cpuop_func op_c1d8_0_ff; +extern cpuop_func op_c1e0_0_nf; +extern cpuop_func op_c1e0_0_ff; +extern cpuop_func op_c1e8_0_nf; +extern cpuop_func op_c1e8_0_ff; +extern cpuop_func op_c1f0_0_nf; +extern cpuop_func op_c1f0_0_ff; +extern cpuop_func op_c1f8_0_nf; +extern cpuop_func op_c1f8_0_ff; +extern cpuop_func op_c1f9_0_nf; +extern cpuop_func op_c1f9_0_ff; +extern cpuop_func op_c1fa_0_nf; +extern cpuop_func op_c1fa_0_ff; +extern cpuop_func op_c1fb_0_nf; +extern cpuop_func op_c1fb_0_ff; +extern cpuop_func op_c1fc_0_nf; +extern cpuop_func op_c1fc_0_ff; +extern cpuop_func op_d000_0_nf; +extern cpuop_func op_d000_0_ff; +extern cpuop_func op_d010_0_nf; +extern cpuop_func op_d010_0_ff; +extern cpuop_func op_d018_0_nf; +extern cpuop_func op_d018_0_ff; +extern cpuop_func op_d020_0_nf; +extern cpuop_func op_d020_0_ff; +extern cpuop_func op_d028_0_nf; +extern cpuop_func op_d028_0_ff; +extern cpuop_func op_d030_0_nf; +extern cpuop_func op_d030_0_ff; +extern cpuop_func op_d038_0_nf; +extern cpuop_func op_d038_0_ff; +extern cpuop_func op_d039_0_nf; +extern cpuop_func op_d039_0_ff; +extern cpuop_func op_d03a_0_nf; +extern cpuop_func op_d03a_0_ff; +extern cpuop_func op_d03b_0_nf; +extern cpuop_func op_d03b_0_ff; +extern cpuop_func op_d03c_0_nf; +extern cpuop_func op_d03c_0_ff; +extern cpuop_func op_d040_0_nf; +extern cpuop_func op_d040_0_ff; +extern cpuop_func op_d048_0_nf; +extern cpuop_func op_d048_0_ff; +extern cpuop_func op_d050_0_nf; +extern cpuop_func op_d050_0_ff; +extern cpuop_func op_d058_0_nf; +extern cpuop_func op_d058_0_ff; +extern cpuop_func op_d060_0_nf; +extern cpuop_func op_d060_0_ff; +extern cpuop_func op_d068_0_nf; +extern cpuop_func op_d068_0_ff; +extern cpuop_func op_d070_0_nf; +extern cpuop_func op_d070_0_ff; +extern cpuop_func op_d078_0_nf; +extern cpuop_func op_d078_0_ff; +extern cpuop_func op_d079_0_nf; +extern cpuop_func op_d079_0_ff; +extern cpuop_func op_d07a_0_nf; +extern cpuop_func op_d07a_0_ff; +extern cpuop_func op_d07b_0_nf; +extern cpuop_func op_d07b_0_ff; +extern cpuop_func op_d07c_0_nf; +extern cpuop_func op_d07c_0_ff; +extern cpuop_func op_d080_0_nf; +extern cpuop_func op_d080_0_ff; +extern cpuop_func op_d088_0_nf; +extern cpuop_func op_d088_0_ff; +extern cpuop_func op_d090_0_nf; +extern cpuop_func op_d090_0_ff; +extern cpuop_func op_d098_0_nf; +extern cpuop_func op_d098_0_ff; +extern cpuop_func op_d0a0_0_nf; +extern cpuop_func op_d0a0_0_ff; +extern cpuop_func op_d0a8_0_nf; +extern cpuop_func op_d0a8_0_ff; +extern cpuop_func op_d0b0_0_nf; +extern cpuop_func op_d0b0_0_ff; +extern cpuop_func op_d0b8_0_nf; +extern cpuop_func op_d0b8_0_ff; +extern cpuop_func op_d0b9_0_nf; +extern cpuop_func op_d0b9_0_ff; +extern cpuop_func op_d0ba_0_nf; +extern cpuop_func op_d0ba_0_ff; +extern cpuop_func op_d0bb_0_nf; +extern cpuop_func op_d0bb_0_ff; +extern cpuop_func op_d0bc_0_nf; +extern cpuop_func op_d0bc_0_ff; +extern cpuop_func op_d0c0_0_nf; +extern cpuop_func op_d0c0_0_ff; +extern cpuop_func op_d0c8_0_nf; +extern cpuop_func op_d0c8_0_ff; +extern cpuop_func op_d0d0_0_nf; +extern cpuop_func op_d0d0_0_ff; +extern cpuop_func op_d0d8_0_nf; +extern cpuop_func op_d0d8_0_ff; +extern cpuop_func op_d0e0_0_nf; +extern cpuop_func op_d0e0_0_ff; +extern cpuop_func op_d0e8_0_nf; +extern cpuop_func op_d0e8_0_ff; +extern cpuop_func op_d0f0_0_nf; +extern cpuop_func op_d0f0_0_ff; +extern cpuop_func op_d0f8_0_nf; +extern cpuop_func op_d0f8_0_ff; +extern cpuop_func op_d0f9_0_nf; +extern cpuop_func op_d0f9_0_ff; +extern cpuop_func op_d0fa_0_nf; +extern cpuop_func op_d0fa_0_ff; +extern cpuop_func op_d0fb_0_nf; +extern cpuop_func op_d0fb_0_ff; +extern cpuop_func op_d0fc_0_nf; +extern cpuop_func op_d0fc_0_ff; +extern cpuop_func op_d100_0_nf; +extern cpuop_func op_d100_0_ff; +extern cpuop_func op_d108_0_nf; +extern cpuop_func op_d108_0_ff; +extern cpuop_func op_d110_0_nf; +extern cpuop_func op_d110_0_ff; +extern cpuop_func op_d118_0_nf; +extern cpuop_func op_d118_0_ff; +extern cpuop_func op_d120_0_nf; +extern cpuop_func op_d120_0_ff; +extern cpuop_func op_d128_0_nf; +extern cpuop_func op_d128_0_ff; +extern cpuop_func op_d130_0_nf; +extern cpuop_func op_d130_0_ff; +extern cpuop_func op_d138_0_nf; +extern cpuop_func op_d138_0_ff; +extern cpuop_func op_d139_0_nf; +extern cpuop_func op_d139_0_ff; +extern cpuop_func op_d140_0_nf; +extern cpuop_func op_d140_0_ff; +extern cpuop_func op_d148_0_nf; +extern cpuop_func op_d148_0_ff; +extern cpuop_func op_d150_0_nf; +extern cpuop_func op_d150_0_ff; +extern cpuop_func op_d158_0_nf; +extern cpuop_func op_d158_0_ff; +extern cpuop_func op_d160_0_nf; +extern cpuop_func op_d160_0_ff; +extern cpuop_func op_d168_0_nf; +extern cpuop_func op_d168_0_ff; +extern cpuop_func op_d170_0_nf; +extern cpuop_func op_d170_0_ff; +extern cpuop_func op_d178_0_nf; +extern cpuop_func op_d178_0_ff; +extern cpuop_func op_d179_0_nf; +extern cpuop_func op_d179_0_ff; +extern cpuop_func op_d180_0_nf; +extern cpuop_func op_d180_0_ff; +extern cpuop_func op_d188_0_nf; +extern cpuop_func op_d188_0_ff; +extern cpuop_func op_d190_0_nf; +extern cpuop_func op_d190_0_ff; +extern cpuop_func op_d198_0_nf; +extern cpuop_func op_d198_0_ff; +extern cpuop_func op_d1a0_0_nf; +extern cpuop_func op_d1a0_0_ff; +extern cpuop_func op_d1a8_0_nf; +extern cpuop_func op_d1a8_0_ff; +extern cpuop_func op_d1b0_0_nf; +extern cpuop_func op_d1b0_0_ff; +extern cpuop_func op_d1b8_0_nf; +extern cpuop_func op_d1b8_0_ff; +extern cpuop_func op_d1b9_0_nf; +extern cpuop_func op_d1b9_0_ff; +extern cpuop_func op_d1c0_0_nf; +extern cpuop_func op_d1c0_0_ff; +extern cpuop_func op_d1c8_0_nf; +extern cpuop_func op_d1c8_0_ff; +extern cpuop_func op_d1d0_0_nf; +extern cpuop_func op_d1d0_0_ff; +extern cpuop_func op_d1d8_0_nf; +extern cpuop_func op_d1d8_0_ff; +extern cpuop_func op_d1e0_0_nf; +extern cpuop_func op_d1e0_0_ff; +extern cpuop_func op_d1e8_0_nf; +extern cpuop_func op_d1e8_0_ff; +extern cpuop_func op_d1f0_0_nf; +extern cpuop_func op_d1f0_0_ff; +extern cpuop_func op_d1f8_0_nf; +extern cpuop_func op_d1f8_0_ff; +extern cpuop_func op_d1f9_0_nf; +extern cpuop_func op_d1f9_0_ff; +extern cpuop_func op_d1fa_0_nf; +extern cpuop_func op_d1fa_0_ff; +extern cpuop_func op_d1fb_0_nf; +extern cpuop_func op_d1fb_0_ff; +extern cpuop_func op_d1fc_0_nf; +extern cpuop_func op_d1fc_0_ff; +extern cpuop_func op_e000_0_nf; +extern cpuop_func op_e000_0_ff; +extern cpuop_func op_e008_0_nf; +extern cpuop_func op_e008_0_ff; +extern cpuop_func op_e010_0_nf; +extern cpuop_func op_e010_0_ff; +extern cpuop_func op_e018_0_nf; +extern cpuop_func op_e018_0_ff; +extern cpuop_func op_e020_0_nf; +extern cpuop_func op_e020_0_ff; +extern cpuop_func op_e028_0_nf; +extern cpuop_func op_e028_0_ff; +extern cpuop_func op_e030_0_nf; +extern cpuop_func op_e030_0_ff; +extern cpuop_func op_e038_0_nf; +extern cpuop_func op_e038_0_ff; +extern cpuop_func op_e040_0_nf; +extern cpuop_func op_e040_0_ff; +extern cpuop_func op_e048_0_nf; +extern cpuop_func op_e048_0_ff; +extern cpuop_func op_e050_0_nf; +extern cpuop_func op_e050_0_ff; +extern cpuop_func op_e058_0_nf; +extern cpuop_func op_e058_0_ff; +extern cpuop_func op_e060_0_nf; +extern cpuop_func op_e060_0_ff; +extern cpuop_func op_e068_0_nf; +extern cpuop_func op_e068_0_ff; +extern cpuop_func op_e070_0_nf; +extern cpuop_func op_e070_0_ff; +extern cpuop_func op_e078_0_nf; +extern cpuop_func op_e078_0_ff; +extern cpuop_func op_e080_0_nf; +extern cpuop_func op_e080_0_ff; +extern cpuop_func op_e088_0_nf; +extern cpuop_func op_e088_0_ff; +extern cpuop_func op_e090_0_nf; +extern cpuop_func op_e090_0_ff; +extern cpuop_func op_e098_0_nf; +extern cpuop_func op_e098_0_ff; +extern cpuop_func op_e0a0_0_nf; +extern cpuop_func op_e0a0_0_ff; +extern cpuop_func op_e0a8_0_nf; +extern cpuop_func op_e0a8_0_ff; +extern cpuop_func op_e0b0_0_nf; +extern cpuop_func op_e0b0_0_ff; +extern cpuop_func op_e0b8_0_nf; +extern cpuop_func op_e0b8_0_ff; +extern cpuop_func op_e0d0_0_nf; +extern cpuop_func op_e0d0_0_ff; +extern cpuop_func op_e0d8_0_nf; +extern cpuop_func op_e0d8_0_ff; +extern cpuop_func op_e0e0_0_nf; +extern cpuop_func op_e0e0_0_ff; +extern cpuop_func op_e0e8_0_nf; +extern cpuop_func op_e0e8_0_ff; +extern cpuop_func op_e0f0_0_nf; +extern cpuop_func op_e0f0_0_ff; +extern cpuop_func op_e0f8_0_nf; +extern cpuop_func op_e0f8_0_ff; +extern cpuop_func op_e0f9_0_nf; +extern cpuop_func op_e0f9_0_ff; +extern cpuop_func op_e100_0_nf; +extern cpuop_func op_e100_0_ff; +extern cpuop_func op_e108_0_nf; +extern cpuop_func op_e108_0_ff; +extern cpuop_func op_e110_0_nf; +extern cpuop_func op_e110_0_ff; +extern cpuop_func op_e118_0_nf; +extern cpuop_func op_e118_0_ff; +extern cpuop_func op_e120_0_nf; +extern cpuop_func op_e120_0_ff; +extern cpuop_func op_e128_0_nf; +extern cpuop_func op_e128_0_ff; +extern cpuop_func op_e130_0_nf; +extern cpuop_func op_e130_0_ff; +extern cpuop_func op_e138_0_nf; +extern cpuop_func op_e138_0_ff; +extern cpuop_func op_e140_0_nf; +extern cpuop_func op_e140_0_ff; +extern cpuop_func op_e148_0_nf; +extern cpuop_func op_e148_0_ff; +extern cpuop_func op_e150_0_nf; +extern cpuop_func op_e150_0_ff; +extern cpuop_func op_e158_0_nf; +extern cpuop_func op_e158_0_ff; +extern cpuop_func op_e160_0_nf; +extern cpuop_func op_e160_0_ff; +extern cpuop_func op_e168_0_nf; +extern cpuop_func op_e168_0_ff; +extern cpuop_func op_e170_0_nf; +extern cpuop_func op_e170_0_ff; +extern cpuop_func op_e178_0_nf; +extern cpuop_func op_e178_0_ff; +extern cpuop_func op_e180_0_nf; +extern cpuop_func op_e180_0_ff; +extern cpuop_func op_e188_0_nf; +extern cpuop_func op_e188_0_ff; +extern cpuop_func op_e190_0_nf; +extern cpuop_func op_e190_0_ff; +extern cpuop_func op_e198_0_nf; +extern cpuop_func op_e198_0_ff; +extern cpuop_func op_e1a0_0_nf; +extern cpuop_func op_e1a0_0_ff; +extern cpuop_func op_e1a8_0_nf; +extern cpuop_func op_e1a8_0_ff; +extern cpuop_func op_e1b0_0_nf; +extern cpuop_func op_e1b0_0_ff; +extern cpuop_func op_e1b8_0_nf; +extern cpuop_func op_e1b8_0_ff; +extern cpuop_func op_e1d0_0_nf; +extern cpuop_func op_e1d0_0_ff; +extern cpuop_func op_e1d8_0_nf; +extern cpuop_func op_e1d8_0_ff; +extern cpuop_func op_e1e0_0_nf; +extern cpuop_func op_e1e0_0_ff; +extern cpuop_func op_e1e8_0_nf; +extern cpuop_func op_e1e8_0_ff; +extern cpuop_func op_e1f0_0_nf; +extern cpuop_func op_e1f0_0_ff; +extern cpuop_func op_e1f8_0_nf; +extern cpuop_func op_e1f8_0_ff; +extern cpuop_func op_e1f9_0_nf; +extern cpuop_func op_e1f9_0_ff; +extern cpuop_func op_e2d0_0_nf; +extern cpuop_func op_e2d0_0_ff; +extern cpuop_func op_e2d8_0_nf; +extern cpuop_func op_e2d8_0_ff; +extern cpuop_func op_e2e0_0_nf; +extern cpuop_func op_e2e0_0_ff; +extern cpuop_func op_e2e8_0_nf; +extern cpuop_func op_e2e8_0_ff; +extern cpuop_func op_e2f0_0_nf; +extern cpuop_func op_e2f0_0_ff; +extern cpuop_func op_e2f8_0_nf; +extern cpuop_func op_e2f8_0_ff; +extern cpuop_func op_e2f9_0_nf; +extern cpuop_func op_e2f9_0_ff; +extern cpuop_func op_e3d0_0_nf; +extern cpuop_func op_e3d0_0_ff; +extern cpuop_func op_e3d8_0_nf; +extern cpuop_func op_e3d8_0_ff; +extern cpuop_func op_e3e0_0_nf; +extern cpuop_func op_e3e0_0_ff; +extern cpuop_func op_e3e8_0_nf; +extern cpuop_func op_e3e8_0_ff; +extern cpuop_func op_e3f0_0_nf; +extern cpuop_func op_e3f0_0_ff; +extern cpuop_func op_e3f8_0_nf; +extern cpuop_func op_e3f8_0_ff; +extern cpuop_func op_e3f9_0_nf; +extern cpuop_func op_e3f9_0_ff; +extern cpuop_func op_e4d0_0_nf; +extern cpuop_func op_e4d0_0_ff; +extern cpuop_func op_e4d8_0_nf; +extern cpuop_func op_e4d8_0_ff; +extern cpuop_func op_e4e0_0_nf; +extern cpuop_func op_e4e0_0_ff; +extern cpuop_func op_e4e8_0_nf; +extern cpuop_func op_e4e8_0_ff; +extern cpuop_func op_e4f0_0_nf; +extern cpuop_func op_e4f0_0_ff; +extern cpuop_func op_e4f8_0_nf; +extern cpuop_func op_e4f8_0_ff; +extern cpuop_func op_e4f9_0_nf; +extern cpuop_func op_e4f9_0_ff; +extern cpuop_func op_e5d0_0_nf; +extern cpuop_func op_e5d0_0_ff; +extern cpuop_func op_e5d8_0_nf; +extern cpuop_func op_e5d8_0_ff; +extern cpuop_func op_e5e0_0_nf; +extern cpuop_func op_e5e0_0_ff; +extern cpuop_func op_e5e8_0_nf; +extern cpuop_func op_e5e8_0_ff; +extern cpuop_func op_e5f0_0_nf; +extern cpuop_func op_e5f0_0_ff; +extern cpuop_func op_e5f8_0_nf; +extern cpuop_func op_e5f8_0_ff; +extern cpuop_func op_e5f9_0_nf; +extern cpuop_func op_e5f9_0_ff; +extern cpuop_func op_e6d0_0_nf; +extern cpuop_func op_e6d0_0_ff; +extern cpuop_func op_e6d8_0_nf; +extern cpuop_func op_e6d8_0_ff; +extern cpuop_func op_e6e0_0_nf; +extern cpuop_func op_e6e0_0_ff; +extern cpuop_func op_e6e8_0_nf; +extern cpuop_func op_e6e8_0_ff; +extern cpuop_func op_e6f0_0_nf; +extern cpuop_func op_e6f0_0_ff; +extern cpuop_func op_e6f8_0_nf; +extern cpuop_func op_e6f8_0_ff; +extern cpuop_func op_e6f9_0_nf; +extern cpuop_func op_e6f9_0_ff; +extern cpuop_func op_e7d0_0_nf; +extern cpuop_func op_e7d0_0_ff; +extern cpuop_func op_e7d8_0_nf; +extern cpuop_func op_e7d8_0_ff; +extern cpuop_func op_e7e0_0_nf; +extern cpuop_func op_e7e0_0_ff; +extern cpuop_func op_e7e8_0_nf; +extern cpuop_func op_e7e8_0_ff; +extern cpuop_func op_e7f0_0_nf; +extern cpuop_func op_e7f0_0_ff; +extern cpuop_func op_e7f8_0_nf; +extern cpuop_func op_e7f8_0_ff; +extern cpuop_func op_e7f9_0_nf; +extern cpuop_func op_e7f9_0_ff; +extern cpuop_func op_e8c0_0_nf; +extern cpuop_func op_e8c0_0_ff; +extern cpuop_func op_e8d0_0_nf; +extern cpuop_func op_e8d0_0_ff; +extern cpuop_func op_e8e8_0_nf; +extern cpuop_func op_e8e8_0_ff; +extern cpuop_func op_e8f0_0_nf; +extern cpuop_func op_e8f0_0_ff; +extern cpuop_func op_e8f8_0_nf; +extern cpuop_func op_e8f8_0_ff; +extern cpuop_func op_e8f9_0_nf; +extern cpuop_func op_e8f9_0_ff; +extern cpuop_func op_e8fa_0_nf; +extern cpuop_func op_e8fa_0_ff; +extern cpuop_func op_e8fb_0_nf; +extern cpuop_func op_e8fb_0_ff; +extern cpuop_func op_e9c0_0_nf; +extern cpuop_func op_e9c0_0_ff; +extern cpuop_func op_e9d0_0_nf; +extern cpuop_func op_e9d0_0_ff; +extern cpuop_func op_e9e8_0_nf; +extern cpuop_func op_e9e8_0_ff; +extern cpuop_func op_e9f0_0_nf; +extern cpuop_func op_e9f0_0_ff; +extern cpuop_func op_e9f8_0_nf; +extern cpuop_func op_e9f8_0_ff; +extern cpuop_func op_e9f9_0_nf; +extern cpuop_func op_e9f9_0_ff; +extern cpuop_func op_e9fa_0_nf; +extern cpuop_func op_e9fa_0_ff; +extern cpuop_func op_e9fb_0_nf; +extern cpuop_func op_e9fb_0_ff; +extern cpuop_func op_eac0_0_nf; +extern cpuop_func op_eac0_0_ff; +extern cpuop_func op_ead0_0_nf; +extern cpuop_func op_ead0_0_ff; +extern cpuop_func op_eae8_0_nf; +extern cpuop_func op_eae8_0_ff; +extern cpuop_func op_eaf0_0_nf; +extern cpuop_func op_eaf0_0_ff; +extern cpuop_func op_eaf8_0_nf; +extern cpuop_func op_eaf8_0_ff; +extern cpuop_func op_eaf9_0_nf; +extern cpuop_func op_eaf9_0_ff; +extern cpuop_func op_ebc0_0_nf; +extern cpuop_func op_ebc0_0_ff; +extern cpuop_func op_ebd0_0_nf; +extern cpuop_func op_ebd0_0_ff; +extern cpuop_func op_ebe8_0_nf; +extern cpuop_func op_ebe8_0_ff; +extern cpuop_func op_ebf0_0_nf; +extern cpuop_func op_ebf0_0_ff; +extern cpuop_func op_ebf8_0_nf; +extern cpuop_func op_ebf8_0_ff; +extern cpuop_func op_ebf9_0_nf; +extern cpuop_func op_ebf9_0_ff; +extern cpuop_func op_ebfa_0_nf; +extern cpuop_func op_ebfa_0_ff; +extern cpuop_func op_ebfb_0_nf; +extern cpuop_func op_ebfb_0_ff; +extern cpuop_func op_ecc0_0_nf; +extern cpuop_func op_ecc0_0_ff; +extern cpuop_func op_ecd0_0_nf; +extern cpuop_func op_ecd0_0_ff; +extern cpuop_func op_ece8_0_nf; +extern cpuop_func op_ece8_0_ff; +extern cpuop_func op_ecf0_0_nf; +extern cpuop_func op_ecf0_0_ff; +extern cpuop_func op_ecf8_0_nf; +extern cpuop_func op_ecf8_0_ff; +extern cpuop_func op_ecf9_0_nf; +extern cpuop_func op_ecf9_0_ff; +extern cpuop_func op_edc0_0_nf; +extern cpuop_func op_edc0_0_ff; +extern cpuop_func op_edd0_0_nf; +extern cpuop_func op_edd0_0_ff; +extern cpuop_func op_ede8_0_nf; +extern cpuop_func op_ede8_0_ff; +extern cpuop_func op_edf0_0_nf; +extern cpuop_func op_edf0_0_ff; +extern cpuop_func op_edf8_0_nf; +extern cpuop_func op_edf8_0_ff; +extern cpuop_func op_edf9_0_nf; +extern cpuop_func op_edf9_0_ff; +extern cpuop_func op_edfa_0_nf; +extern cpuop_func op_edfa_0_ff; +extern cpuop_func op_edfb_0_nf; +extern cpuop_func op_edfb_0_ff; +extern cpuop_func op_eec0_0_nf; +extern cpuop_func op_eec0_0_ff; +extern cpuop_func op_eed0_0_nf; +extern cpuop_func op_eed0_0_ff; +extern cpuop_func op_eee8_0_nf; +extern cpuop_func op_eee8_0_ff; +extern cpuop_func op_eef0_0_nf; +extern cpuop_func op_eef0_0_ff; +extern cpuop_func op_eef8_0_nf; +extern cpuop_func op_eef8_0_ff; +extern cpuop_func op_eef9_0_nf; +extern cpuop_func op_eef9_0_ff; +extern cpuop_func op_efc0_0_nf; +extern cpuop_func op_efc0_0_ff; +extern cpuop_func op_efd0_0_nf; +extern cpuop_func op_efd0_0_ff; +extern cpuop_func op_efe8_0_nf; +extern cpuop_func op_efe8_0_ff; +extern cpuop_func op_eff0_0_nf; +extern cpuop_func op_eff0_0_ff; +extern cpuop_func op_eff8_0_nf; +extern cpuop_func op_eff8_0_ff; +extern cpuop_func op_eff9_0_nf; +extern cpuop_func op_eff9_0_ff; +extern cpuop_func op_f200_0_nf; +extern cpuop_func op_f200_0_ff; +extern cpuop_func op_f208_0_nf; +extern cpuop_func op_f208_0_ff; +extern cpuop_func op_f210_0_nf; +extern cpuop_func op_f210_0_ff; +extern cpuop_func op_f218_0_nf; +extern cpuop_func op_f218_0_ff; +extern cpuop_func op_f220_0_nf; +extern cpuop_func op_f220_0_ff; +extern cpuop_func op_f228_0_nf; +extern cpuop_func op_f228_0_ff; +extern cpuop_func op_f230_0_nf; +extern cpuop_func op_f230_0_ff; +extern cpuop_func op_f238_0_nf; +extern cpuop_func op_f238_0_ff; +extern cpuop_func op_f239_0_nf; +extern cpuop_func op_f239_0_ff; +extern cpuop_func op_f23a_0_nf; +extern cpuop_func op_f23a_0_ff; +extern cpuop_func op_f23b_0_nf; +extern cpuop_func op_f23b_0_ff; +extern cpuop_func op_f23c_0_nf; +extern cpuop_func op_f23c_0_ff; +extern cpuop_func op_f240_0_nf; +extern cpuop_func op_f240_0_ff; +extern cpuop_func op_f248_0_nf; +extern cpuop_func op_f248_0_ff; +extern cpuop_func op_f250_0_nf; +extern cpuop_func op_f250_0_ff; +extern cpuop_func op_f258_0_nf; +extern cpuop_func op_f258_0_ff; +extern cpuop_func op_f260_0_nf; +extern cpuop_func op_f260_0_ff; +extern cpuop_func op_f268_0_nf; +extern cpuop_func op_f268_0_ff; +extern cpuop_func op_f270_0_nf; +extern cpuop_func op_f270_0_ff; +extern cpuop_func op_f278_0_nf; +extern cpuop_func op_f278_0_ff; +extern cpuop_func op_f279_0_nf; +extern cpuop_func op_f279_0_ff; +extern cpuop_func op_f27a_0_nf; +extern cpuop_func op_f27a_0_ff; +extern cpuop_func op_f27b_0_nf; +extern cpuop_func op_f27b_0_ff; +extern cpuop_func op_f27c_0_nf; +extern cpuop_func op_f27c_0_ff; +extern cpuop_func op_f280_0_nf; +extern cpuop_func op_f280_0_ff; +extern cpuop_func op_f2c0_0_nf; +extern cpuop_func op_f2c0_0_ff; +extern cpuop_func op_f310_0_nf; +extern cpuop_func op_f310_0_ff; +extern cpuop_func op_f320_0_nf; +extern cpuop_func op_f320_0_ff; +extern cpuop_func op_f328_0_nf; +extern cpuop_func op_f328_0_ff; +extern cpuop_func op_f330_0_nf; +extern cpuop_func op_f330_0_ff; +extern cpuop_func op_f338_0_nf; +extern cpuop_func op_f338_0_ff; +extern cpuop_func op_f339_0_nf; +extern cpuop_func op_f339_0_ff; +extern cpuop_func op_f350_0_nf; +extern cpuop_func op_f350_0_ff; +extern cpuop_func op_f358_0_nf; +extern cpuop_func op_f358_0_ff; +extern cpuop_func op_f368_0_nf; +extern cpuop_func op_f368_0_ff; +extern cpuop_func op_f370_0_nf; +extern cpuop_func op_f370_0_ff; +extern cpuop_func op_f378_0_nf; +extern cpuop_func op_f378_0_ff; +extern cpuop_func op_f379_0_nf; +extern cpuop_func op_f379_0_ff; +extern cpuop_func op_f37a_0_nf; +extern cpuop_func op_f37a_0_ff; +extern cpuop_func op_f37b_0_nf; +extern cpuop_func op_f37b_0_ff; +extern cpuop_func op_f408_0_nf; +extern cpuop_func op_f408_0_ff; +extern cpuop_func op_f410_0_nf; +extern cpuop_func op_f410_0_ff; +extern cpuop_func op_f418_0_nf; +extern cpuop_func op_f418_0_ff; +extern cpuop_func op_f419_0_nf; +extern cpuop_func op_f419_0_ff; +extern cpuop_func op_f41a_0_nf; +extern cpuop_func op_f41a_0_ff; +extern cpuop_func op_f41b_0_nf; +extern cpuop_func op_f41b_0_ff; +extern cpuop_func op_f41c_0_nf; +extern cpuop_func op_f41c_0_ff; +extern cpuop_func op_f41d_0_nf; +extern cpuop_func op_f41d_0_ff; +extern cpuop_func op_f41e_0_nf; +extern cpuop_func op_f41e_0_ff; +extern cpuop_func op_f41f_0_nf; +extern cpuop_func op_f41f_0_ff; +extern cpuop_func op_f428_0_nf; +extern cpuop_func op_f428_0_ff; +extern cpuop_func op_f430_0_nf; +extern cpuop_func op_f430_0_ff; +extern cpuop_func op_f438_0_nf; +extern cpuop_func op_f438_0_ff; +extern cpuop_func op_f439_0_nf; +extern cpuop_func op_f439_0_ff; +extern cpuop_func op_f43a_0_nf; +extern cpuop_func op_f43a_0_ff; +extern cpuop_func op_f43b_0_nf; +extern cpuop_func op_f43b_0_ff; +extern cpuop_func op_f43c_0_nf; +extern cpuop_func op_f43c_0_ff; +extern cpuop_func op_f43d_0_nf; +extern cpuop_func op_f43d_0_ff; +extern cpuop_func op_f43e_0_nf; +extern cpuop_func op_f43e_0_ff; +extern cpuop_func op_f43f_0_nf; +extern cpuop_func op_f43f_0_ff; +extern cpuop_func op_f500_0_nf; +extern cpuop_func op_f500_0_ff; +extern cpuop_func op_f600_0_nf; +extern cpuop_func op_f600_0_ff; +extern cpuop_func op_f608_0_nf; +extern cpuop_func op_f608_0_ff; +extern cpuop_func op_f610_0_nf; +extern cpuop_func op_f610_0_ff; +extern cpuop_func op_f618_0_nf; +extern cpuop_func op_f618_0_ff; +extern cpuop_func op_f620_0_nf; +extern cpuop_func op_f620_0_ff; +extern cpuop_func op_4800_1_nf; +extern cpuop_func op_4800_1_ff; +extern cpuop_func op_4810_1_nf; +extern cpuop_func op_4810_1_ff; +extern cpuop_func op_4818_1_nf; +extern cpuop_func op_4818_1_ff; +extern cpuop_func op_4820_1_nf; +extern cpuop_func op_4820_1_ff; +extern cpuop_func op_4828_1_nf; +extern cpuop_func op_4828_1_ff; +extern cpuop_func op_4830_1_nf; +extern cpuop_func op_4830_1_ff; +extern cpuop_func op_4838_1_nf; +extern cpuop_func op_4838_1_ff; +extern cpuop_func op_4839_1_nf; +extern cpuop_func op_4839_1_ff; +extern cpuop_func op_8100_1_nf; +extern cpuop_func op_8100_1_ff; +extern cpuop_func op_8108_1_nf; +extern cpuop_func op_8108_1_ff; +extern cpuop_func op_c100_1_nf; +extern cpuop_func op_c100_1_ff; +extern cpuop_func op_c108_1_nf; +extern cpuop_func op_c108_1_ff; +extern cpuop_func op_30_3_nf; +extern cpuop_func op_30_3_ff; +extern cpuop_func op_70_3_nf; +extern cpuop_func op_70_3_ff; +extern cpuop_func op_b0_3_nf; +extern cpuop_func op_b0_3_ff; +extern cpuop_func op_130_3_nf; +extern cpuop_func op_130_3_ff; +extern cpuop_func op_13b_3_nf; +extern cpuop_func op_13b_3_ff; +extern cpuop_func op_170_3_nf; +extern cpuop_func op_170_3_ff; +extern cpuop_func op_17b_3_nf; +extern cpuop_func op_17b_3_ff; +extern cpuop_func op_1b0_3_nf; +extern cpuop_func op_1b0_3_ff; +extern cpuop_func op_1bb_3_nf; +extern cpuop_func op_1bb_3_ff; +extern cpuop_func op_1f0_3_nf; +extern cpuop_func op_1f0_3_ff; +extern cpuop_func op_1fb_3_nf; +extern cpuop_func op_1fb_3_ff; +extern cpuop_func op_230_3_nf; +extern cpuop_func op_230_3_ff; +extern cpuop_func op_270_3_nf; +extern cpuop_func op_270_3_ff; +extern cpuop_func op_2b0_3_nf; +extern cpuop_func op_2b0_3_ff; +extern cpuop_func op_430_3_nf; +extern cpuop_func op_430_3_ff; +extern cpuop_func op_470_3_nf; +extern cpuop_func op_470_3_ff; +extern cpuop_func op_4b0_3_nf; +extern cpuop_func op_4b0_3_ff; +extern cpuop_func op_630_3_nf; +extern cpuop_func op_630_3_ff; +extern cpuop_func op_670_3_nf; +extern cpuop_func op_670_3_ff; +extern cpuop_func op_6b0_3_nf; +extern cpuop_func op_6b0_3_ff; +extern cpuop_func op_830_3_nf; +extern cpuop_func op_830_3_ff; +extern cpuop_func op_83b_3_nf; +extern cpuop_func op_83b_3_ff; +extern cpuop_func op_870_3_nf; +extern cpuop_func op_870_3_ff; +extern cpuop_func op_87b_3_nf; +extern cpuop_func op_87b_3_ff; +extern cpuop_func op_8b0_3_nf; +extern cpuop_func op_8b0_3_ff; +extern cpuop_func op_8bb_3_nf; +extern cpuop_func op_8bb_3_ff; +extern cpuop_func op_8f0_3_nf; +extern cpuop_func op_8f0_3_ff; +extern cpuop_func op_8fb_3_nf; +extern cpuop_func op_8fb_3_ff; +extern cpuop_func op_a30_3_nf; +extern cpuop_func op_a30_3_ff; +extern cpuop_func op_a70_3_nf; +extern cpuop_func op_a70_3_ff; +extern cpuop_func op_ab0_3_nf; +extern cpuop_func op_ab0_3_ff; +extern cpuop_func op_c30_3_nf; +extern cpuop_func op_c30_3_ff; +extern cpuop_func op_c3b_3_nf; +extern cpuop_func op_c3b_3_ff; +extern cpuop_func op_c70_3_nf; +extern cpuop_func op_c70_3_ff; +extern cpuop_func op_c7b_3_nf; +extern cpuop_func op_c7b_3_ff; +extern cpuop_func op_cb0_3_nf; +extern cpuop_func op_cb0_3_ff; +extern cpuop_func op_cbb_3_nf; +extern cpuop_func op_cbb_3_ff; +extern cpuop_func op_1030_3_nf; +extern cpuop_func op_1030_3_ff; +extern cpuop_func op_103b_3_nf; +extern cpuop_func op_103b_3_ff; +extern cpuop_func op_10b0_3_nf; +extern cpuop_func op_10b0_3_ff; +extern cpuop_func op_10bb_3_nf; +extern cpuop_func op_10bb_3_ff; +extern cpuop_func op_10f0_3_nf; +extern cpuop_func op_10f0_3_ff; +extern cpuop_func op_10fb_3_nf; +extern cpuop_func op_10fb_3_ff; +extern cpuop_func op_1130_3_nf; +extern cpuop_func op_1130_3_ff; +extern cpuop_func op_113b_3_nf; +extern cpuop_func op_113b_3_ff; +extern cpuop_func op_1170_3_nf; +extern cpuop_func op_1170_3_ff; +extern cpuop_func op_117b_3_nf; +extern cpuop_func op_117b_3_ff; +extern cpuop_func op_1180_3_nf; +extern cpuop_func op_1180_3_ff; +extern cpuop_func op_1190_3_nf; +extern cpuop_func op_1190_3_ff; +extern cpuop_func op_1198_3_nf; +extern cpuop_func op_1198_3_ff; +extern cpuop_func op_11a0_3_nf; +extern cpuop_func op_11a0_3_ff; +extern cpuop_func op_11a8_3_nf; +extern cpuop_func op_11a8_3_ff; +extern cpuop_func op_11b0_3_nf; +extern cpuop_func op_11b0_3_ff; +extern cpuop_func op_11b8_3_nf; +extern cpuop_func op_11b8_3_ff; +extern cpuop_func op_11b9_3_nf; +extern cpuop_func op_11b9_3_ff; +extern cpuop_func op_11ba_3_nf; +extern cpuop_func op_11ba_3_ff; +extern cpuop_func op_11bb_3_nf; +extern cpuop_func op_11bb_3_ff; +extern cpuop_func op_11bc_3_nf; +extern cpuop_func op_11bc_3_ff; +extern cpuop_func op_11f0_3_nf; +extern cpuop_func op_11f0_3_ff; +extern cpuop_func op_11fb_3_nf; +extern cpuop_func op_11fb_3_ff; +extern cpuop_func op_13f0_3_nf; +extern cpuop_func op_13f0_3_ff; +extern cpuop_func op_13fb_3_nf; +extern cpuop_func op_13fb_3_ff; +extern cpuop_func op_2030_3_nf; +extern cpuop_func op_2030_3_ff; +extern cpuop_func op_203b_3_nf; +extern cpuop_func op_203b_3_ff; +extern cpuop_func op_2070_3_nf; +extern cpuop_func op_2070_3_ff; +extern cpuop_func op_207b_3_nf; +extern cpuop_func op_207b_3_ff; +extern cpuop_func op_20b0_3_nf; +extern cpuop_func op_20b0_3_ff; +extern cpuop_func op_20bb_3_nf; +extern cpuop_func op_20bb_3_ff; +extern cpuop_func op_20f0_3_nf; +extern cpuop_func op_20f0_3_ff; +extern cpuop_func op_20fb_3_nf; +extern cpuop_func op_20fb_3_ff; +extern cpuop_func op_2130_3_nf; +extern cpuop_func op_2130_3_ff; +extern cpuop_func op_213b_3_nf; +extern cpuop_func op_213b_3_ff; +extern cpuop_func op_2170_3_nf; +extern cpuop_func op_2170_3_ff; +extern cpuop_func op_217b_3_nf; +extern cpuop_func op_217b_3_ff; +extern cpuop_func op_2180_3_nf; +extern cpuop_func op_2180_3_ff; +extern cpuop_func op_2188_3_nf; +extern cpuop_func op_2188_3_ff; +extern cpuop_func op_2190_3_nf; +extern cpuop_func op_2190_3_ff; +extern cpuop_func op_2198_3_nf; +extern cpuop_func op_2198_3_ff; +extern cpuop_func op_21a0_3_nf; +extern cpuop_func op_21a0_3_ff; +extern cpuop_func op_21a8_3_nf; +extern cpuop_func op_21a8_3_ff; +extern cpuop_func op_21b0_3_nf; +extern cpuop_func op_21b0_3_ff; +extern cpuop_func op_21b8_3_nf; +extern cpuop_func op_21b8_3_ff; +extern cpuop_func op_21b9_3_nf; +extern cpuop_func op_21b9_3_ff; +extern cpuop_func op_21ba_3_nf; +extern cpuop_func op_21ba_3_ff; +extern cpuop_func op_21bb_3_nf; +extern cpuop_func op_21bb_3_ff; +extern cpuop_func op_21bc_3_nf; +extern cpuop_func op_21bc_3_ff; +extern cpuop_func op_21f0_3_nf; +extern cpuop_func op_21f0_3_ff; +extern cpuop_func op_21fb_3_nf; +extern cpuop_func op_21fb_3_ff; +extern cpuop_func op_23f0_3_nf; +extern cpuop_func op_23f0_3_ff; +extern cpuop_func op_23fb_3_nf; +extern cpuop_func op_23fb_3_ff; +extern cpuop_func op_3030_3_nf; +extern cpuop_func op_3030_3_ff; +extern cpuop_func op_303b_3_nf; +extern cpuop_func op_303b_3_ff; +extern cpuop_func op_3070_3_nf; +extern cpuop_func op_3070_3_ff; +extern cpuop_func op_307b_3_nf; +extern cpuop_func op_307b_3_ff; +extern cpuop_func op_30b0_3_nf; +extern cpuop_func op_30b0_3_ff; +extern cpuop_func op_30bb_3_nf; +extern cpuop_func op_30bb_3_ff; +extern cpuop_func op_30f0_3_nf; +extern cpuop_func op_30f0_3_ff; +extern cpuop_func op_30fb_3_nf; +extern cpuop_func op_30fb_3_ff; +extern cpuop_func op_3130_3_nf; +extern cpuop_func op_3130_3_ff; +extern cpuop_func op_313b_3_nf; +extern cpuop_func op_313b_3_ff; +extern cpuop_func op_3170_3_nf; +extern cpuop_func op_3170_3_ff; +extern cpuop_func op_317b_3_nf; +extern cpuop_func op_317b_3_ff; +extern cpuop_func op_3180_3_nf; +extern cpuop_func op_3180_3_ff; +extern cpuop_func op_3188_3_nf; +extern cpuop_func op_3188_3_ff; +extern cpuop_func op_3190_3_nf; +extern cpuop_func op_3190_3_ff; +extern cpuop_func op_3198_3_nf; +extern cpuop_func op_3198_3_ff; +extern cpuop_func op_31a0_3_nf; +extern cpuop_func op_31a0_3_ff; +extern cpuop_func op_31a8_3_nf; +extern cpuop_func op_31a8_3_ff; +extern cpuop_func op_31b0_3_nf; +extern cpuop_func op_31b0_3_ff; +extern cpuop_func op_31b8_3_nf; +extern cpuop_func op_31b8_3_ff; +extern cpuop_func op_31b9_3_nf; +extern cpuop_func op_31b9_3_ff; +extern cpuop_func op_31ba_3_nf; +extern cpuop_func op_31ba_3_ff; +extern cpuop_func op_31bb_3_nf; +extern cpuop_func op_31bb_3_ff; +extern cpuop_func op_31bc_3_nf; +extern cpuop_func op_31bc_3_ff; +extern cpuop_func op_31f0_3_nf; +extern cpuop_func op_31f0_3_ff; +extern cpuop_func op_31fb_3_nf; +extern cpuop_func op_31fb_3_ff; +extern cpuop_func op_33f0_3_nf; +extern cpuop_func op_33f0_3_ff; +extern cpuop_func op_33fb_3_nf; +extern cpuop_func op_33fb_3_ff; +extern cpuop_func op_4030_3_nf; +extern cpuop_func op_4030_3_ff; +extern cpuop_func op_4070_3_nf; +extern cpuop_func op_4070_3_ff; +extern cpuop_func op_40b0_3_nf; +extern cpuop_func op_40b0_3_ff; +extern cpuop_func op_40f0_3_nf; +extern cpuop_func op_40f0_3_ff; +extern cpuop_func op_4130_3_nf; +extern cpuop_func op_4130_3_ff; +extern cpuop_func op_413b_3_nf; +extern cpuop_func op_413b_3_ff; +extern cpuop_func op_41b0_3_nf; +extern cpuop_func op_41b0_3_ff; +extern cpuop_func op_41bb_3_nf; +extern cpuop_func op_41bb_3_ff; +extern cpuop_func op_41f0_3_nf; +extern cpuop_func op_41f0_3_ff; +extern cpuop_func op_41fb_3_nf; +extern cpuop_func op_41fb_3_ff; +extern cpuop_func op_4230_3_nf; +extern cpuop_func op_4230_3_ff; +extern cpuop_func op_4270_3_nf; +extern cpuop_func op_4270_3_ff; +extern cpuop_func op_42b0_3_nf; +extern cpuop_func op_42b0_3_ff; +extern cpuop_func op_42f0_3_nf; +extern cpuop_func op_42f0_3_ff; +extern cpuop_func op_4430_3_nf; +extern cpuop_func op_4430_3_ff; +extern cpuop_func op_4470_3_nf; +extern cpuop_func op_4470_3_ff; +extern cpuop_func op_44b0_3_nf; +extern cpuop_func op_44b0_3_ff; +extern cpuop_func op_44f0_3_nf; +extern cpuop_func op_44f0_3_ff; +extern cpuop_func op_44fb_3_nf; +extern cpuop_func op_44fb_3_ff; +extern cpuop_func op_4630_3_nf; +extern cpuop_func op_4630_3_ff; +extern cpuop_func op_4670_3_nf; +extern cpuop_func op_4670_3_ff; +extern cpuop_func op_46b0_3_nf; +extern cpuop_func op_46b0_3_ff; +extern cpuop_func op_46f0_3_nf; +extern cpuop_func op_46f0_3_ff; +extern cpuop_func op_46fb_3_nf; +extern cpuop_func op_46fb_3_ff; +extern cpuop_func op_4830_3_nf; +extern cpuop_func op_4830_3_ff; +extern cpuop_func op_4870_3_nf; +extern cpuop_func op_4870_3_ff; +extern cpuop_func op_487b_3_nf; +extern cpuop_func op_487b_3_ff; +extern cpuop_func op_48b0_3_nf; +extern cpuop_func op_48b0_3_ff; +extern cpuop_func op_48f0_3_nf; +extern cpuop_func op_48f0_3_ff; +extern cpuop_func op_4a30_3_nf; +extern cpuop_func op_4a30_3_ff; +extern cpuop_func op_4a3b_3_nf; +extern cpuop_func op_4a3b_3_ff; +extern cpuop_func op_4a70_3_nf; +extern cpuop_func op_4a70_3_ff; +extern cpuop_func op_4a7b_3_nf; +extern cpuop_func op_4a7b_3_ff; +extern cpuop_func op_4ab0_3_nf; +extern cpuop_func op_4ab0_3_ff; +extern cpuop_func op_4abb_3_nf; +extern cpuop_func op_4abb_3_ff; +extern cpuop_func op_4af0_3_nf; +extern cpuop_func op_4af0_3_ff; +extern cpuop_func op_4cb0_3_nf; +extern cpuop_func op_4cb0_3_ff; +extern cpuop_func op_4cbb_3_nf; +extern cpuop_func op_4cbb_3_ff; +extern cpuop_func op_4cf0_3_nf; +extern cpuop_func op_4cf0_3_ff; +extern cpuop_func op_4cfb_3_nf; +extern cpuop_func op_4cfb_3_ff; +extern cpuop_func op_4eb0_3_nf; +extern cpuop_func op_4eb0_3_ff; +extern cpuop_func op_4ebb_3_nf; +extern cpuop_func op_4ebb_3_ff; +extern cpuop_func op_4ef0_3_nf; +extern cpuop_func op_4ef0_3_ff; +extern cpuop_func op_4efb_3_nf; +extern cpuop_func op_4efb_3_ff; +extern cpuop_func op_5030_3_nf; +extern cpuop_func op_5030_3_ff; +extern cpuop_func op_5070_3_nf; +extern cpuop_func op_5070_3_ff; +extern cpuop_func op_50b0_3_nf; +extern cpuop_func op_50b0_3_ff; +extern cpuop_func op_50f0_3_nf; +extern cpuop_func op_50f0_3_ff; +extern cpuop_func op_5130_3_nf; +extern cpuop_func op_5130_3_ff; +extern cpuop_func op_5170_3_nf; +extern cpuop_func op_5170_3_ff; +extern cpuop_func op_51b0_3_nf; +extern cpuop_func op_51b0_3_ff; +extern cpuop_func op_51f0_3_nf; +extern cpuop_func op_51f0_3_ff; +extern cpuop_func op_52f0_3_nf; +extern cpuop_func op_52f0_3_ff; +extern cpuop_func op_53f0_3_nf; +extern cpuop_func op_53f0_3_ff; +extern cpuop_func op_54f0_3_nf; +extern cpuop_func op_54f0_3_ff; +extern cpuop_func op_55f0_3_nf; +extern cpuop_func op_55f0_3_ff; +extern cpuop_func op_56f0_3_nf; +extern cpuop_func op_56f0_3_ff; +extern cpuop_func op_57f0_3_nf; +extern cpuop_func op_57f0_3_ff; +extern cpuop_func op_58f0_3_nf; +extern cpuop_func op_58f0_3_ff; +extern cpuop_func op_59f0_3_nf; +extern cpuop_func op_59f0_3_ff; +extern cpuop_func op_5af0_3_nf; +extern cpuop_func op_5af0_3_ff; +extern cpuop_func op_5bf0_3_nf; +extern cpuop_func op_5bf0_3_ff; +extern cpuop_func op_5cf0_3_nf; +extern cpuop_func op_5cf0_3_ff; +extern cpuop_func op_5df0_3_nf; +extern cpuop_func op_5df0_3_ff; +extern cpuop_func op_5ef0_3_nf; +extern cpuop_func op_5ef0_3_ff; +extern cpuop_func op_5ff0_3_nf; +extern cpuop_func op_5ff0_3_ff; +extern cpuop_func op_60ff_3_nf; +extern cpuop_func op_60ff_3_ff; +extern cpuop_func op_62ff_3_nf; +extern cpuop_func op_62ff_3_ff; +extern cpuop_func op_63ff_3_nf; +extern cpuop_func op_63ff_3_ff; +extern cpuop_func op_64ff_3_nf; +extern cpuop_func op_64ff_3_ff; +extern cpuop_func op_65ff_3_nf; +extern cpuop_func op_65ff_3_ff; +extern cpuop_func op_66ff_3_nf; +extern cpuop_func op_66ff_3_ff; +extern cpuop_func op_67ff_3_nf; +extern cpuop_func op_67ff_3_ff; +extern cpuop_func op_68ff_3_nf; +extern cpuop_func op_68ff_3_ff; +extern cpuop_func op_69ff_3_nf; +extern cpuop_func op_69ff_3_ff; +extern cpuop_func op_6aff_3_nf; +extern cpuop_func op_6aff_3_ff; +extern cpuop_func op_6bff_3_nf; +extern cpuop_func op_6bff_3_ff; +extern cpuop_func op_6cff_3_nf; +extern cpuop_func op_6cff_3_ff; +extern cpuop_func op_6dff_3_nf; +extern cpuop_func op_6dff_3_ff; +extern cpuop_func op_6eff_3_nf; +extern cpuop_func op_6eff_3_ff; +extern cpuop_func op_6fff_3_nf; +extern cpuop_func op_6fff_3_ff; +extern cpuop_func op_8030_3_nf; +extern cpuop_func op_8030_3_ff; +extern cpuop_func op_803b_3_nf; +extern cpuop_func op_803b_3_ff; +extern cpuop_func op_8070_3_nf; +extern cpuop_func op_8070_3_ff; +extern cpuop_func op_807b_3_nf; +extern cpuop_func op_807b_3_ff; +extern cpuop_func op_80b0_3_nf; +extern cpuop_func op_80b0_3_ff; +extern cpuop_func op_80bb_3_nf; +extern cpuop_func op_80bb_3_ff; +extern cpuop_func op_80f0_3_nf; +extern cpuop_func op_80f0_3_ff; +extern cpuop_func op_80fb_3_nf; +extern cpuop_func op_80fb_3_ff; +extern cpuop_func op_8130_3_nf; +extern cpuop_func op_8130_3_ff; +extern cpuop_func op_8170_3_nf; +extern cpuop_func op_8170_3_ff; +extern cpuop_func op_81b0_3_nf; +extern cpuop_func op_81b0_3_ff; +extern cpuop_func op_81f0_3_nf; +extern cpuop_func op_81f0_3_ff; +extern cpuop_func op_81fb_3_nf; +extern cpuop_func op_81fb_3_ff; +extern cpuop_func op_9030_3_nf; +extern cpuop_func op_9030_3_ff; +extern cpuop_func op_903b_3_nf; +extern cpuop_func op_903b_3_ff; +extern cpuop_func op_9070_3_nf; +extern cpuop_func op_9070_3_ff; +extern cpuop_func op_907b_3_nf; +extern cpuop_func op_907b_3_ff; +extern cpuop_func op_90b0_3_nf; +extern cpuop_func op_90b0_3_ff; +extern cpuop_func op_90bb_3_nf; +extern cpuop_func op_90bb_3_ff; +extern cpuop_func op_90f0_3_nf; +extern cpuop_func op_90f0_3_ff; +extern cpuop_func op_90fb_3_nf; +extern cpuop_func op_90fb_3_ff; +extern cpuop_func op_9130_3_nf; +extern cpuop_func op_9130_3_ff; +extern cpuop_func op_9170_3_nf; +extern cpuop_func op_9170_3_ff; +extern cpuop_func op_91b0_3_nf; +extern cpuop_func op_91b0_3_ff; +extern cpuop_func op_91f0_3_nf; +extern cpuop_func op_91f0_3_ff; +extern cpuop_func op_91fb_3_nf; +extern cpuop_func op_91fb_3_ff; +extern cpuop_func op_b030_3_nf; +extern cpuop_func op_b030_3_ff; +extern cpuop_func op_b03b_3_nf; +extern cpuop_func op_b03b_3_ff; +extern cpuop_func op_b070_3_nf; +extern cpuop_func op_b070_3_ff; +extern cpuop_func op_b07b_3_nf; +extern cpuop_func op_b07b_3_ff; +extern cpuop_func op_b0b0_3_nf; +extern cpuop_func op_b0b0_3_ff; +extern cpuop_func op_b0bb_3_nf; +extern cpuop_func op_b0bb_3_ff; +extern cpuop_func op_b0f0_3_nf; +extern cpuop_func op_b0f0_3_ff; +extern cpuop_func op_b0fb_3_nf; +extern cpuop_func op_b0fb_3_ff; +extern cpuop_func op_b130_3_nf; +extern cpuop_func op_b130_3_ff; +extern cpuop_func op_b170_3_nf; +extern cpuop_func op_b170_3_ff; +extern cpuop_func op_b1b0_3_nf; +extern cpuop_func op_b1b0_3_ff; +extern cpuop_func op_b1f0_3_nf; +extern cpuop_func op_b1f0_3_ff; +extern cpuop_func op_b1fb_3_nf; +extern cpuop_func op_b1fb_3_ff; +extern cpuop_func op_c030_3_nf; +extern cpuop_func op_c030_3_ff; +extern cpuop_func op_c03b_3_nf; +extern cpuop_func op_c03b_3_ff; +extern cpuop_func op_c070_3_nf; +extern cpuop_func op_c070_3_ff; +extern cpuop_func op_c07b_3_nf; +extern cpuop_func op_c07b_3_ff; +extern cpuop_func op_c0b0_3_nf; +extern cpuop_func op_c0b0_3_ff; +extern cpuop_func op_c0bb_3_nf; +extern cpuop_func op_c0bb_3_ff; +extern cpuop_func op_c0f0_3_nf; +extern cpuop_func op_c0f0_3_ff; +extern cpuop_func op_c0fb_3_nf; +extern cpuop_func op_c0fb_3_ff; +extern cpuop_func op_c130_3_nf; +extern cpuop_func op_c130_3_ff; +extern cpuop_func op_c170_3_nf; +extern cpuop_func op_c170_3_ff; +extern cpuop_func op_c1b0_3_nf; +extern cpuop_func op_c1b0_3_ff; +extern cpuop_func op_c1f0_3_nf; +extern cpuop_func op_c1f0_3_ff; +extern cpuop_func op_c1fb_3_nf; +extern cpuop_func op_c1fb_3_ff; +extern cpuop_func op_d030_3_nf; +extern cpuop_func op_d030_3_ff; +extern cpuop_func op_d03b_3_nf; +extern cpuop_func op_d03b_3_ff; +extern cpuop_func op_d070_3_nf; +extern cpuop_func op_d070_3_ff; +extern cpuop_func op_d07b_3_nf; +extern cpuop_func op_d07b_3_ff; +extern cpuop_func op_d0b0_3_nf; +extern cpuop_func op_d0b0_3_ff; +extern cpuop_func op_d0bb_3_nf; +extern cpuop_func op_d0bb_3_ff; +extern cpuop_func op_d0f0_3_nf; +extern cpuop_func op_d0f0_3_ff; +extern cpuop_func op_d0fb_3_nf; +extern cpuop_func op_d0fb_3_ff; +extern cpuop_func op_d130_3_nf; +extern cpuop_func op_d130_3_ff; +extern cpuop_func op_d170_3_nf; +extern cpuop_func op_d170_3_ff; +extern cpuop_func op_d1b0_3_nf; +extern cpuop_func op_d1b0_3_ff; +extern cpuop_func op_d1f0_3_nf; +extern cpuop_func op_d1f0_3_ff; +extern cpuop_func op_d1fb_3_nf; +extern cpuop_func op_d1fb_3_ff; +extern cpuop_func op_e0f0_3_nf; +extern cpuop_func op_e0f0_3_ff; +extern cpuop_func op_e1f0_3_nf; +extern cpuop_func op_e1f0_3_ff; +extern cpuop_func op_e2f0_3_nf; +extern cpuop_func op_e2f0_3_ff; +extern cpuop_func op_e3f0_3_nf; +extern cpuop_func op_e3f0_3_ff; +extern cpuop_func op_e4f0_3_nf; +extern cpuop_func op_e4f0_3_ff; +extern cpuop_func op_e5f0_3_nf; +extern cpuop_func op_e5f0_3_ff; +extern cpuop_func op_e6f0_3_nf; +extern cpuop_func op_e6f0_3_ff; +extern cpuop_func op_e7f0_3_nf; +extern cpuop_func op_e7f0_3_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_4e73_4_nf; +extern cpuop_func op_4e73_4_ff; diff --git a/src/PSP2/debugScreen.c b/src/PSP2/debugScreen.c new file mode 100644 index 0000000..322bfcd --- /dev/null +++ b/src/PSP2/debugScreen.c @@ -0,0 +1,295 @@ +/* + * PSP Software Development Kit - http://www.pspdev.org + * ----------------------------------------------------------------------- + * Licensed under the BSD license, see LICENSE in PSPSDK root for details. + * + * font.c - Debug Font. + * + * Copyright (c) 2005 Marcus R. Brown + * Copyright (c) 2005 James Forshaw + * Copyright (c) 2005 John Kelley + * + * $Id: font.c 540 2005-07-08 19:35:10Z warren $ + */ + +#include +#include +#include +#include + +#include +#include +#include + +#include "debugScreen.h" + +#ifdef __cplusplus +extern "C" { +#endif + +unsigned char psvDebugScreenFont[]= +"\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x42\xa5\x81\xa5\x99\x42\x3c" +"\x3c\x7e\xdb\xff\xff\xdb\x66\x3c\x6c\xfe\xfe\xfe\x7c\x38\x10\x00" +"\x10\x38\x7c\xfe\x7c\x38\x10\x00\x10\x38\x54\xfe\x54\x10\x38\x00" +"\x10\x38\x7c\xfe\xfe\x10\x38\x00\x00\x00\x00\x30\x30\x00\x00\x00" +"\xff\xff\xff\xe7\xe7\xff\xff\xff\x38\x44\x82\x82\x82\x44\x38\x00" +"\xc7\xbb\x7d\x7d\x7d\xbb\xc7\xff\x0f\x03\x05\x79\x88\x88\x88\x70" +"\x38\x44\x44\x44\x38\x10\x7c\x10\x30\x28\x24\x24\x28\x20\xe0\xc0" +"\x3c\x24\x3c\x24\x24\xe4\xdc\x18\x10\x54\x38\xee\x38\x54\x10\x00" +"\x10\x10\x10\x7c\x10\x10\x10\x10\x10\x10\x10\xff\x00\x00\x00\x00" +"\x00\x00\x00\xff\x10\x10\x10\x10\x10\x10\x10\xf0\x10\x10\x10\x10" +"\x10\x10\x10\x1f\x10\x10\x10\x10\x10\x10\x10\xff\x10\x10\x10\x10" +"\x10\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\xff\x00\x00\x00\x00" +"\x00\x00\x00\x1f\x10\x10\x10\x10\x00\x00\x00\xf0\x10\x10\x10\x10" +"\x10\x10\x10\x1f\x00\x00\x00\x00\x10\x10\x10\xf0\x00\x00\x00\x00" +"\x81\x42\x24\x18\x18\x24\x42\x81\x01\x02\x04\x08\x10\x20\x40\x80" +"\x80\x40\x20\x10\x08\x04\x02\x01\x00\x10\x10\xff\x10\x10\x00\x00" +"\x00\x00\x00\x00\x00\x00\x00\x00\x20\x20\x20\x20\x00\x00\x20\x00" +"\x50\x50\x50\x00\x00\x00\x00\x00\x50\x50\xf8\x50\xf8\x50\x50\x00" +"\x20\x78\xa0\x70\x28\xf0\x20\x00\xc0\xc8\x10\x20\x40\x98\x18\x00" +"\x40\xa0\x40\xa8\x90\x98\x60\x00\x10\x20\x40\x00\x00\x00\x00\x00" +"\x10\x20\x40\x40\x40\x20\x10\x00\x40\x20\x10\x10\x10\x20\x40\x00" +"\x20\xa8\x70\x20\x70\xa8\x20\x00\x00\x20\x20\xf8\x20\x20\x00\x00" +"\x00\x00\x00\x00\x00\x20\x20\x40\x00\x00\x00\x78\x00\x00\x00\x00" +"\x00\x00\x00\x00\x00\x60\x60\x00\x00\x00\x08\x10\x20\x40\x80\x00" +"\x70\x88\x98\xa8\xc8\x88\x70\x00\x20\x60\xa0\x20\x20\x20\xf8\x00" +"\x70\x88\x08\x10\x60\x80\xf8\x00\x70\x88\x08\x30\x08\x88\x70\x00" +"\x10\x30\x50\x90\xf8\x10\x10\x00\xf8\x80\xe0\x10\x08\x10\xe0\x00" +"\x30\x40\x80\xf0\x88\x88\x70\x00\xf8\x88\x10\x20\x20\x20\x20\x00" +"\x70\x88\x88\x70\x88\x88\x70\x00\x70\x88\x88\x78\x08\x10\x60\x00" +"\x00\x00\x20\x00\x00\x20\x00\x00\x00\x00\x20\x00\x00\x20\x20\x40" +"\x18\x30\x60\xc0\x60\x30\x18\x00\x00\x00\xf8\x00\xf8\x00\x00\x00" +"\xc0\x60\x30\x18\x30\x60\xc0\x00\x70\x88\x08\x10\x20\x00\x20\x00" +"\x70\x88\x08\x68\xa8\xa8\x70\x00\x20\x50\x88\x88\xf8\x88\x88\x00" +"\xf0\x48\x48\x70\x48\x48\xf0\x00\x30\x48\x80\x80\x80\x48\x30\x00" +"\xe0\x50\x48\x48\x48\x50\xe0\x00\xf8\x80\x80\xf0\x80\x80\xf8\x00" +"\xf8\x80\x80\xf0\x80\x80\x80\x00\x70\x88\x80\xb8\x88\x88\x70\x00" +"\x88\x88\x88\xf8\x88\x88\x88\x00\x70\x20\x20\x20\x20\x20\x70\x00" +"\x38\x10\x10\x10\x90\x90\x60\x00\x88\x90\xa0\xc0\xa0\x90\x88\x00" +"\x80\x80\x80\x80\x80\x80\xf8\x00\x88\xd8\xa8\xa8\x88\x88\x88\x00" +"\x88\xc8\xc8\xa8\x98\x98\x88\x00\x70\x88\x88\x88\x88\x88\x70\x00" +"\xf0\x88\x88\xf0\x80\x80\x80\x00\x70\x88\x88\x88\xa8\x90\x68\x00" +"\xf0\x88\x88\xf0\xa0\x90\x88\x00\x70\x88\x80\x70\x08\x88\x70\x00" +"\xf8\x20\x20\x20\x20\x20\x20\x00\x88\x88\x88\x88\x88\x88\x70\x00" +"\x88\x88\x88\x88\x50\x50\x20\x00\x88\x88\x88\xa8\xa8\xd8\x88\x00" +"\x88\x88\x50\x20\x50\x88\x88\x00\x88\x88\x88\x70\x20\x20\x20\x00" +"\xf8\x08\x10\x20\x40\x80\xf8\x00\x70\x40\x40\x40\x40\x40\x70\x00" +"\x00\x00\x80\x40\x20\x10\x08\x00\x70\x10\x10\x10\x10\x10\x70\x00" +"\x20\x50\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x00" +"\x40\x20\x10\x00\x00\x00\x00\x00\x00\x00\x70\x08\x78\x88\x78\x00" +"\x80\x80\xb0\xc8\x88\xc8\xb0\x00\x00\x00\x70\x88\x80\x88\x70\x00" +"\x08\x08\x68\x98\x88\x98\x68\x00\x00\x00\x70\x88\xf8\x80\x70\x00" +"\x10\x28\x20\xf8\x20\x20\x20\x00\x00\x00\x68\x98\x98\x68\x08\x70" +"\x80\x80\xf0\x88\x88\x88\x88\x00\x20\x00\x60\x20\x20\x20\x70\x00" +"\x10\x00\x30\x10\x10\x10\x90\x60\x40\x40\x48\x50\x60\x50\x48\x00" +"\x60\x20\x20\x20\x20\x20\x70\x00\x00\x00\xd0\xa8\xa8\xa8\xa8\x00" +"\x00\x00\xb0\xc8\x88\x88\x88\x00\x00\x00\x70\x88\x88\x88\x70\x00" +"\x00\x00\xb0\xc8\xc8\xb0\x80\x80\x00\x00\x68\x98\x98\x68\x08\x08" +"\x00\x00\xb0\xc8\x80\x80\x80\x00\x00\x00\x78\x80\xf0\x08\xf0\x00" +"\x40\x40\xf0\x40\x40\x48\x30\x00\x00\x00\x90\x90\x90\x90\x68\x00" +"\x00\x00\x88\x88\x88\x50\x20\x00\x00\x00\x88\xa8\xa8\xa8\x50\x00" +"\x00\x00\x88\x50\x20\x50\x88\x00\x00\x00\x88\x88\x98\x68\x08\x70" +"\x00\x00\xf8\x10\x20\x40\xf8\x00\x18\x20\x20\x40\x20\x20\x18\x00" +"\x20\x20\x20\x00\x20\x20\x20\x00\xc0\x20\x20\x10\x20\x20\xc0\x00" +"\x40\xa8\x10\x00\x00\x00\x00\x00\x00\x00\x20\x50\xf8\x00\x00\x00" +"\x70\x88\x80\x80\x88\x70\x20\x60\x90\x00\x00\x90\x90\x90\x68\x00" +"\x10\x20\x70\x88\xf8\x80\x70\x00\x20\x50\x70\x08\x78\x88\x78\x00" +"\x48\x00\x70\x08\x78\x88\x78\x00\x20\x10\x70\x08\x78\x88\x78\x00" +"\x20\x00\x70\x08\x78\x88\x78\x00\x00\x70\x80\x80\x80\x70\x10\x60" +"\x20\x50\x70\x88\xf8\x80\x70\x00\x50\x00\x70\x88\xf8\x80\x70\x00" +"\x20\x10\x70\x88\xf8\x80\x70\x00\x50\x00\x00\x60\x20\x20\x70\x00" +"\x20\x50\x00\x60\x20\x20\x70\x00\x40\x20\x00\x60\x20\x20\x70\x00" +"\x50\x00\x20\x50\x88\xf8\x88\x00\x20\x00\x20\x50\x88\xf8\x88\x00" +"\x10\x20\xf8\x80\xf0\x80\xf8\x00\x00\x00\x6c\x12\x7e\x90\x6e\x00" +"\x3e\x50\x90\x9c\xf0\x90\x9e\x00\x60\x90\x00\x60\x90\x90\x60\x00" +"\x90\x00\x00\x60\x90\x90\x60\x00\x40\x20\x00\x60\x90\x90\x60\x00" +"\x40\xa0\x00\xa0\xa0\xa0\x50\x00\x40\x20\x00\xa0\xa0\xa0\x50\x00" +"\x90\x00\x90\x90\xb0\x50\x10\xe0\x50\x00\x70\x88\x88\x88\x70\x00" +"\x50\x00\x88\x88\x88\x88\x70\x00\x20\x20\x78\x80\x80\x78\x20\x20" +"\x18\x24\x20\xf8\x20\xe2\x5c\x00\x88\x50\x20\xf8\x20\xf8\x20\x00" +"\xc0\xa0\xa0\xc8\x9c\x88\x88\x8c\x18\x20\x20\xf8\x20\x20\x20\x40" +"\x10\x20\x70\x08\x78\x88\x78\x00\x10\x20\x00\x60\x20\x20\x70\x00" +"\x20\x40\x00\x60\x90\x90\x60\x00\x20\x40\x00\x90\x90\x90\x68\x00" +"\x50\xa0\x00\xa0\xd0\x90\x90\x00\x28\x50\x00\xc8\xa8\x98\x88\x00" +"\x00\x70\x08\x78\x88\x78\x00\xf8\x00\x60\x90\x90\x90\x60\x00\xf0" +"\x20\x00\x20\x40\x80\x88\x70\x00\x00\x00\x00\xf8\x80\x80\x00\x00" +"\x00\x00\x00\xf8\x08\x08\x00\x00\x84\x88\x90\xa8\x54\x84\x08\x1c" +"\x84\x88\x90\xa8\x58\xa8\x3c\x08\x20\x00\x00\x20\x20\x20\x20\x00" +"\x00\x00\x24\x48\x90\x48\x24\x00\x00\x00\x90\x48\x24\x48\x90\x00" +"\x28\x50\x20\x50\x88\xf8\x88\x00\x28\x50\x70\x08\x78\x88\x78\x00" +"\x28\x50\x00\x70\x20\x20\x70\x00\x28\x50\x00\x20\x20\x20\x70\x00" +"\x28\x50\x00\x70\x88\x88\x70\x00\x50\xa0\x00\x60\x90\x90\x60\x00" +"\x28\x50\x00\x88\x88\x88\x70\x00\x50\xa0\x00\xa0\xa0\xa0\x50\x00" +"\xfc\x48\x48\x48\xe8\x08\x50\x20\x00\x50\x00\x50\x50\x50\x10\x20" +"\xc0\x44\xc8\x54\xec\x54\x9e\x04\x10\xa8\x40\x00\x00\x00\x00\x00" +"\x00\x20\x50\x88\x50\x20\x00\x00\x88\x10\x20\x40\x80\x28\x00\x00" +"\x7c\xa8\xa8\x68\x28\x28\x28\x00\x38\x40\x30\x48\x48\x30\x08\x70" +"\x00\x00\x00\x00\x00\x00\xff\xff\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f" +"\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00" +"\x00\x00\x00\x3c\x3c\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00" +"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x0f\x0f\x0f\x0f\xf0\xf0\xf0\xf0" +"\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\x03\x03\x03\x03\x03\x03\x03\x03" +"\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x11\x22\x44\x88\x11\x22\x44\x88" +"\x88\x44\x22\x11\x88\x44\x22\x11\xfe\x7c\x38\x10\x00\x00\x00\x00" +"\x00\x00\x00\x00\x10\x38\x7c\xfe\x80\xc0\xe0\xf0\xe0\xc0\x80\x00" +"\x01\x03\x07\x0f\x07\x03\x01\x00\xff\x7e\x3c\x18\x18\x3c\x7e\xff" +"\x81\xc3\xe7\xff\xff\xe7\xc3\x81\xf0\xf0\xf0\xf0\x00\x00\x00\x00" +"\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00" +"\x00\x00\x00\x00\xf0\xf0\xf0\xf0\x33\x33\xcc\xcc\x33\x33\xcc\xcc" +"\x00\x20\x20\x50\x50\x88\xf8\x00\x20\x20\x70\x20\x70\x20\x20\x00" +"\x00\x00\x00\x50\x88\xa8\x50\x00\xff\xff\xff\xff\xff\xff\xff\xff" +"\x00\x00\x00\x00\xff\xff\xff\xff\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0" +"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\xff\xff\xff\xff\x00\x00\x00\x00" +"\x00\x00\x68\x90\x90\x90\x68\x00\x30\x48\x48\x70\x48\x48\x70\xc0" +"\xf8\x88\x80\x80\x80\x80\x80\x00\xf8\x50\x50\x50\x50\x50\x98\x00" +"\xf8\x88\x40\x20\x40\x88\xf8\x00\x00\x00\x78\x90\x90\x90\x60\x00" +"\x00\x50\x50\x50\x50\x68\x80\x80\x00\x50\xa0\x20\x20\x20\x20\x00" +"\xf8\x20\x70\xa8\xa8\x70\x20\xf8\x20\x50\x88\xf8\x88\x50\x20\x00" +"\x70\x88\x88\x88\x50\x50\xd8\x00\x30\x40\x40\x20\x50\x50\x50\x20" +"\x00\x00\x00\x50\xa8\xa8\x50\x00\x08\x70\xa8\xa8\xa8\x70\x80\x00" +"\x38\x40\x80\xf8\x80\x40\x38\x00\x70\x88\x88\x88\x88\x88\x88\x00" +"\x00\xf8\x00\xf8\x00\xf8\x00\x00\x20\x20\xf8\x20\x20\x00\xf8\x00" +"\xc0\x30\x08\x30\xc0\x00\xf8\x00\x18\x60\x80\x60\x18\x00\xf8\x00" +"\x10\x28\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\xa0\x40" +"\x00\x20\x00\xf8\x00\x20\x00\x00\x00\x50\xa0\x00\x50\xa0\x00\x00" +"\x00\x18\x24\x24\x18\x00\x00\x00\x00\x30\x78\x78\x30\x00\x00\x00" +"\x00\x00\x00\x00\x30\x00\x00\x00\x3e\x20\x20\x20\xa0\x60\x20\x00" +"\xa0\x50\x50\x50\x00\x00\x00\x00\x40\xa0\x20\x40\xe0\x00\x00\x00" +"\x00\x38\x38\x38\x38\x38\x38\x00\x00\x00\x00\x00\x00\x00\x00"; + +static int psvDebugScreenMutex; /*< avoid race condition when outputing strings */ +static uint32_t psvDebugScreenCoordX = 0; +static uint32_t psvDebugScreenCoordY = 0; +static uint32_t psvDebugScreenColorFg = COLOR_DEFAULT_FG; +static uint32_t psvDebugScreenColorBg = COLOR_DEFAULT_BG; +static SceDisplayFrameBuf psvDebugScreenFrameBuf = { + sizeof(SceDisplayFrameBuf), NULL, SCREEN_WIDTH, 0, SCREEN_WIDTH, SCREEN_HEIGHT}; + +uint32_t psvDebugScreenSetFgColor(uint32_t color) { + uint32_t prev_color = psvDebugScreenColorFg; + psvDebugScreenColorFg = color; + return prev_color; +} + +uint32_t psvDebugScreenSetBgColor(uint32_t color) { + uint32_t prev_color = psvDebugScreenColorBg; + psvDebugScreenColorBg = color; + return prev_color; +} + +static size_t psvDebugScreenEscape(const char *str){ + int i,j, p=0, params[8]={}; + for(i=0; i<8 && str[i]!='\0'; i++){ + if(str[i] >= '0' && str[i] <= '9'){ + params[p]=(params[p]*10) + (str[i] - '0'); + }else if(str[i] == ';'){ + p++; + }else if(str[i] == 'f' || str[i] == 'H'){ + psvDebugScreenCoordX = params[0] * SCREEN_GLYPH_W; + psvDebugScreenCoordY = params[1] * SCREEN_GLYPH_H; + break; + }else if (str[i] == 'm'){ + for(j=0; j<=p; j++){ + switch(params[j]/10){/*bold,dim,underline,blink,invert,hidden => unsupported yet */ + #define BIT2BYTE(bit) ( ((!!(bit&4))<<23) | ((!!(bit&2))<<15) | ((!!(bit&1))<<7) ) + case 0:psvDebugScreenSetFgColor(COLOR_DEFAULT_FG);psvDebugScreenSetBgColor(COLOR_DEFAULT_BG);break; + case 3:psvDebugScreenSetFgColor(BIT2BYTE(params[j]%10));break; + case 9:psvDebugScreenSetFgColor(BIT2BYTE(params[j]%10) | 0x7F7F7F7F);break; + case 4:psvDebugScreenSetBgColor(BIT2BYTE(params[j]%10));break; + case 10:psvDebugScreenSetBgColor(BIT2BYTE(params[j]%10) | 0x7F7F7F7F);break; + #undef BIT2BYTE + } + } + break; + } + } + return i; +} + +int psvDebugScreenInit() { + psvDebugScreenMutex = sceKernelCreateMutex("log_mutex", 0, 0, NULL); + SceUID displayblock = sceKernelAllocMemBlock("display", SCE_KERNEL_MEMBLOCK_TYPE_USER_CDRAM_RW, SCREEN_FB_SIZE, NULL); + sceKernelGetMemBlockBase(displayblock, (void**)&psvDebugScreenFrameBuf.base); + + SceDisplayFrameBuf framebuf = { + .size = sizeof(framebuf), + .base = psvDebugScreenFrameBuf.base, + .pitch = SCREEN_WIDTH, + .pixelformat = SCE_DISPLAY_PIXELFORMAT_A8B8G8R8, + .width = SCREEN_WIDTH, + .height = SCREEN_HEIGHT, + }; + + return sceDisplaySetFrameBuf(&framebuf, SCE_DISPLAY_SETBUF_NEXTFRAME); +} + +void psvDebugScreenClear(int bg_color){ + psvDebugScreenCoordX = psvDebugScreenCoordY = 0; + int i; + for(i = 0; i < SCREEN_WIDTH * SCREEN_HEIGHT; i++) { + ((uint32_t*)psvDebugScreenFrameBuf.base)[i] = bg_color; + } +} + +int psvDebugScreenPuts(const char * text){ + int c, i, j, l; + uint8_t *font; + uint32_t *vram_ptr; + uint32_t *vram; + + sceKernelLockMutex(psvDebugScreenMutex, 1, NULL); + + for (c = 0; text[c] != '\0' ; c++) { + if (psvDebugScreenCoordX + 8 > SCREEN_WIDTH) { + psvDebugScreenCoordY += SCREEN_GLYPH_H; + psvDebugScreenCoordX = 0; + } + if (psvDebugScreenCoordY + 8 > SCREEN_HEIGHT) { + psvDebugScreenClear(psvDebugScreenColorBg); + } + if (text[c] == '\n') { + psvDebugScreenCoordX = 0; + psvDebugScreenCoordY += SCREEN_GLYPH_H; + continue; + } else if (text[c] == '\r') { + psvDebugScreenCoordX = 0; + continue; + } else if ((text[c] == '\e') && (text[c+1] == '[')) { /* escape code (change color, position ...) */ + c+=psvDebugScreenEscape(text+2)+2; + continue; + } + + vram = ((uint32_t*)psvDebugScreenFrameBuf.base) + psvDebugScreenCoordX + psvDebugScreenCoordY * SCREEN_FB_WIDTH; + + font = &psvDebugScreenFont[ (int)text[c] * 8]; + for (i = l = 0; i < SCREEN_GLYPH_W; i++, l += SCREEN_GLYPH_W, font++) { + vram_ptr = vram; + for (j = 0; j < SCREEN_GLYPH_W; j++) { + if ((*font & (128 >> j))) *vram_ptr = psvDebugScreenColorFg; + else *vram_ptr = psvDebugScreenColorBg; + vram_ptr++; + } + vram += SCREEN_FB_WIDTH; + } + psvDebugScreenCoordX += SCREEN_GLYPH_W; + } + + sceKernelUnlockMutex(psvDebugScreenMutex, 1); + return c; +} + +int psvDebugScreenPrintf(const char *format, ...) { + char buf[512]; + + va_list opt; + va_start(opt, format); + int ret = vsnprintf(buf, sizeof(buf), format, opt); + psvDebugScreenPuts(buf); + va_end(opt); + + return ret; +} + +#ifdef __cplusplus +} +#endif diff --git a/src/PSP2/debugScreen.h b/src/PSP2/debugScreen.h new file mode 100644 index 0000000..4ee5c7f --- /dev/null +++ b/src/PSP2/debugScreen.h @@ -0,0 +1,49 @@ +#ifndef DEBUG_SCREEN_H +#define DEBUG_SCREEN_H + +#include + +#define SCREEN_WIDTH (960) +#define SCREEN_HEIGHT (544) +#define SCREEN_FB_WIDTH (960) +#define SCREEN_FB_SIZE (2 * 1024 * 1024) +#define SCREEN_FB_ALIGN (256 * 1024) +#define SCREEN_GLYPH_W (8) +#define SCREEN_GLYPH_H (8) + +#define COLOR_BLACK 0xFF000000 +#define COLOR_RED 0xFF0000FF +#define COLOR_BLUE 0xFF00FF00 +#define COLOR_YELLOW 0xFF00FFFF +#define COLOR_GREEN 0xFFFF0000 +#define COLOR_MAGENTA 0xFFFF00FF +#define COLOR_CYAN 0xFFFFFF00 +#define COLOR_WHITE 0xFFFFFFFF +#define COLOR_GREY 0xFF808080 +#define COLOR_DEFAULT_FG COLOR_WHITE +#define COLOR_DEFAULT_BG COLOR_BLACK + +#ifdef __cplusplus +extern "C" { +#endif + +uint32_t psvDebugScreenSetFgColor(uint32_t color); + +uint32_t psvDebugScreenSetBgColor(uint32_t color); + +static size_t psvDebugScreenEscape(const char *str); + +int psvDebugScreenInit(); + +void psvDebugScreenClear(int bg_color); + +int psvDebugScreenPuts(const char * text); + +int psvDebugScreenPrintf(const char *format, ...); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/src/PSP2/ether_psp.cpp b/src/PSP2/ether_psp.cpp new file mode 100644 index 0000000..4b4a4e5 --- /dev/null +++ b/src/PSP2/ether_psp.cpp @@ -0,0 +1,249 @@ +/* + * ether_psp.cpp - Ethernet device driver, PSP specific stuff + * + * Basilisk II (C) 1997-2005 Christian Bauer + * Portions written by Marc Hellwig + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#include "sysdeps.h" + +/* +#include +#include +#include +#include +#include +#include +*/ +#include + +#include +#include +#include + +/*#include +#include */ +#include +#include +#include +#include +#include +#include + +#include "cpu_emulation.h" +#include "main.h" +#include "prefs.h" +#include "user_strings.h" +#include "macos_util.h" +#include "ether.h" +#include "ether_defs.h" + + +#define DEBUG 0 +#include "debug.h" + +#define MONITOR 0 + + +// Global variables +static int read_thread; // Packet reception thread +static bool ether_thread_active = true; // Flag for quitting the reception thread + +static int fd = -1; // UDP socket fd +static bool udp_tunnel = false; + + +/* + * Initialization + */ + +bool ether_init(void) +{ + // Do nothing as PSP only does udptunnel + return false; +} + + +/* + * Deinitialization + */ + +void ether_exit(void) +{ + // Do nothing as PSP only does udptunnel +} + + +/* + * Reset + */ + +void ether_reset(void) +{ + // Do nothing as PSP only does udptunnel +} + + +/* + * Add multicast address + */ + +int16 ether_add_multicast(uint32 pb) +{ + // Do nothing as PSP only does udptunnel + return noErr; +} + + +/* + * Delete multicast address + */ + +int16 ether_del_multicast(uint32 pb) +{ + // Do nothing as PSP only does udptunnel + return noErr; +} + + +/* + * Attach protocol handler + */ + +int16 ether_attach_ph(uint16 type, uint32 handler) +{ + // Do nothing as PSP only does udptunnel + return noErr; +} + + +/* + * Detach protocol handler + */ + +int16 ether_detach_ph(uint16 type) +{ + // Do nothing as PSP only does udptunnel + return noErr; +} + + +/* + * Transmit raw ethernet packet + */ + +int16 ether_write(uint32 wds) +{ + // Do nothing as PSP only does udptunnel + return noErr; +} + + +/* + * Packet reception thread (UDP) + */ + +static int receive_proc_udp(SceSize args, void *argp) +{ + /*while (ether_thread_active) + { + fd_set readfds; + FD_ZERO(&readfds); + FD_SET(fd, &readfds); + struct timeval timeout; + timeout.tv_sec = 1; + timeout.tv_usec = 0; + select(fd+1, &readfds, NULL, NULL, &timeout); + if (FD_ISSET(fd, &readfds)) + { + D(bug(" packet received, triggering Ethernet interrupt\n")); + SetInterruptFlag(INTFLAG_ETHER); + TriggerInterrupt(); + } + } + sceKernelExitDeleteThread(0);*/ + return 0; +} + + +/* + * Start UDP packet reception thread + */ + +bool ether_start_udp_thread(int socket_fd) +{ + /*fd = socket_fd; + udp_tunnel = true; + ether_thread_active = true; + read_thread = sceKernelCreateThread("UDP Receiver", receive_proc_udp, 0x14, 0x1800, PSP_THREAD_ATTR_USER, NULL); + if(read_thread < 0) + return false; + sceKernelStartThread(read_thread, 0, NULL); + //read_thread = spawn_thread(receive_proc_udp, "UDP Receiver", B_URGENT_DISPLAY_PRIORITY, NULL); + //resume_thread(read_thread); + return true;*/ + return false; +} + + +/* + * Stop UDP packet reception thread + */ + +void ether_stop_udp_thread(void) +{ + /*ether_thread_active = false; + //status_t result; + //wait_for_thread(read_thread, &result); + sceKernelDelayThread(1*1000*1000);*/ +} + + +/* + * Ethernet interrupt - activate deferred tasks to call IODone or protocol handlers + */ + +void EtherInterrupt(void) +{ + /*D(bug("EtherIRQ\n")); + EthernetPacket ether_packet; + uint32 packet = ether_packet.addr(); + + if (udp_tunnel) + { + ssize_t length; + + // Read packets from socket and hand to ether_udp_read() for processing + while (true) + { + struct sockaddr_in from; + socklen_t from_len = sizeof(from); + sceKernelDelayThread(10); + length = recvfrom(fd, Mac2HostAddr(packet), 1514, 0, (struct sockaddr *)&from, &from_len); + if (length < 14) + break; + ether_udp_read(packet, length, &from); + } + + } + else + { + // Do nothing as PSP only does udptunnel + } + D(bug(" EtherIRQ done\n"));*/ +} diff --git a/src/PSP2/extfs_psp.cpp b/src/PSP2/extfs_psp.cpp new file mode 100644 index 0000000..3514b5b --- /dev/null +++ b/src/PSP2/extfs_psp.cpp @@ -0,0 +1,579 @@ +/* + * extfs_unix.cpp - MacOS file system for access native file system access, Unix specific stuff + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +//#include +#include + +#include "sysdeps.h" +#include "extfs.h" +#include "extfs_defs.h" + +#define DEBUG 0 +#include "debug.h" + + +extern int ftruncate(int fildes, off_t length); + + +// Default Finder flags +const uint16 DEFAULT_FINDER_FLAGS = kHasBeenInited; + +// AppleSingle/Double entry IDs +#define DATA_FORK 1 +#define RSRC_FORK 2 +#define REAL_NAME 3 +#define COMMENT 4 +#define ICON_BW 5 +#define ICON_COLOR 6 +#define FILE_INFO 7 +#define FINDER_INFO 9 + +// AppleSingle/Double magic numbers +#define MAGIC_SINGLE 0x00051600 +#define MAGIC_DOUBLE 0x00051607 + +// AppleSingle/Double versions +#define VERSION_AUX 0x00010000 +#define VERSION_OSX 0x00020000 + +// AppleSingle/Double structures + +struct EntryDescriptors { + uint32 id; + uint32 offset; + uint32 length; +}; + +struct AppleSingle { + uint32 magicNumber; + uint32 version; + char home[16]; + uint16 numEntries; +} __attribute__((packed)); + + +static AppleSingle aHeader; +static EntryDescriptors aEntries[8]; + +static int helpers[16][3]; // fd based table of index, offset, and length + +#define XFS_INDEX(x) helpers[x][0] +#define XFS_OFFSET(x) helpers[x][1] +#define XFS_LENGTH(x) helpers[x][2] + +#if 0 +#define LOGGING +#define LOG(...) fprintf(log, __VA_ARGS__) +static FILE *log; +#else +#define LOG(...) +#endif + +/* + * Initialization + */ + +void extfs_init(void) +{ +#ifdef LOGGING + log = fopen("errorlog.txt", "w"); +#endif +} + + +/* + * Deinitialization + */ + +void extfs_exit(void) +{ +#ifdef LOGGING + fclose(log); +#endif +} + + +/* + * Add component to path name + */ + +void add_path_component(char *path, const char *component) +{ + int l = strlen(path); + if (l < MAX_PATH_LENGTH-1 && path[l-1] != '/') { + path[l] = '/'; + path[l+1] = 0; + } + strncat(path, component, MAX_PATH_LENGTH-1); +} + + +/* + * Helper support + */ + +static int open_helper(const char *path, int id, int flag) +{ + char helper_path[MAX_PATH_LENGTH]; + char xpath[MAX_PATH_LENGTH]; + int len, i; + + LOG("Opening %s of %s\n", (id==FINDER_INFO) ? "finder info" : (id==RSRC_FORK) ? "resource fork" : "???", path); + + strncpy(xpath, path, MAX_PATH_LENGTH); + if (xpath[strlen(xpath) - 1] == '/') // Remove trailing "/" so that directories can also have finf + xpath[strlen(xpath) - 1] = 0; + + // generate AppleDouble filename from the original filename + char *temp = strrchr(xpath, '/'); + if (temp == NULL) + { + strcpy(helper_path, "._"); + strncat(helper_path, xpath, MAX_PATH_LENGTH); + } + else + { + strncpy(helper_path, xpath, (int)temp - (int)xpath + 1); + helper_path[(int)temp - (int)xpath + 1] = 0; + strcat(helper_path, "._"); + strcat(helper_path, &temp[1]); + } + + if ((flag & O_ACCMODE) == O_RDWR || (flag & O_ACCMODE) == O_WRONLY) + flag |= O_CREAT; + int fd = open(helper_path, flag, 0777); + if (fd < 0) + goto err; + + len = read(fd, (void *)&aHeader, sizeof(aHeader)); + if (len < sizeof(aHeader)) + { + // just created, make a "blank" AppleDouble header with entries + LOG("Created new AppleDouble file\n"); + aHeader.magicNumber = do_byteswap_32(MAGIC_DOUBLE); + aHeader.version = do_byteswap_32(VERSION_OSX); + strcpy(aHeader.home, "Mac OS X "); + aHeader.numEntries = do_byteswap_16(2); + aEntries[0].id = do_byteswap_32(FINDER_INFO); + aEntries[0].offset = do_byteswap_32(0x32); + aEntries[0].length = do_byteswap_32(32); + aEntries[1].id = do_byteswap_32(RSRC_FORK); + aEntries[1].offset = do_byteswap_32(0x52); + aEntries[1].length = do_byteswap_32(0); + lseek(fd, 0, SEEK_SET); + write(fd, (void *)&aHeader, sizeof(aHeader)); + write(fd, (void *)aEntries, 2 * sizeof(EntryDescriptors)); + len = 0; + for (i=0; i<8; i++) + write(fd, (void *)&len, 4); + lseek(fd, sizeof(aHeader), SEEK_SET); + } + + len = read(fd, (void *)aEntries, do_byteswap_16(aHeader.numEntries) * sizeof(EntryDescriptors)); + if (len == do_byteswap_16(aHeader.numEntries) * sizeof(EntryDescriptors)) + { + for (i=0; i= 0) + lseek(fd, XFS_OFFSET(fd), SEEK_SET); // go to start of data + return fd; +} + +static int open_rsrc(const char *path, int flag) +{ + int fd = open_helper(path, RSRC_FORK, flag); + if (fd >= 0) + lseek(fd, XFS_OFFSET(fd), SEEK_SET); // go to start of data + return fd; +} + +static void update_helper(int fd) +{ + off_t curr = lseek(fd, 0, SEEK_CUR); + off_t size = lseek(fd, 0, SEEK_END); + + // update the resource fork entry in the file - slows writing, but it's just the resource fork... who cares? + aEntries[XFS_INDEX(fd)].length = do_byteswap_32(size - (off_t)XFS_OFFSET(fd)); + lseek(fd, sizeof(aHeader) + XFS_INDEX(fd) * sizeof(EntryDescriptors), SEEK_SET); + write(fd, (void *)&aEntries[XFS_INDEX(fd)], sizeof(EntryDescriptors)); + + // return to where we were + lseek(fd, curr, SEEK_SET); +} + +/* + * Get/set finder info for file/directory specified by full path + */ + +struct ext2type { + const char *ext; + uint32 type; + uint32 creator; +}; + +static const ext2type e2t_translation[] = { + {".Z", FOURCC('Z','I','V','M'), FOURCC('L','Z','I','V')}, + {".gz", FOURCC('G','z','i','p'), FOURCC('G','z','i','p')}, + {".hqx", FOURCC('T','E','X','T'), FOURCC('S','I','T','x')}, + {".bin", FOURCC('T','E','X','T'), FOURCC('S','I','T','x')}, + {".pdf", FOURCC('P','D','F',' '), FOURCC('C','A','R','O')}, + {".ps", FOURCC('T','E','X','T'), FOURCC('t','t','x','t')}, + {".sit", FOURCC('S','I','T','!'), FOURCC('S','I','T','x')}, + {".tar", FOURCC('T','A','R','F'), FOURCC('T','A','R',' ')}, + {".uu", FOURCC('T','E','X','T'), FOURCC('S','I','T','x')}, + {".uue", FOURCC('T','E','X','T'), FOURCC('S','I','T','x')}, + {".zip", FOURCC('Z','I','P',' '), FOURCC('Z','I','P',' ')}, + {".8svx", FOURCC('8','S','V','X'), FOURCC('S','N','D','M')}, + {".aifc", FOURCC('A','I','F','C'), FOURCC('T','V','O','D')}, + {".aiff", FOURCC('A','I','F','F'), FOURCC('T','V','O','D')}, + {".au", FOURCC('U','L','A','W'), FOURCC('T','V','O','D')}, + {".mid", FOURCC('M','I','D','I'), FOURCC('T','V','O','D')}, + {".midi", FOURCC('M','I','D','I'), FOURCC('T','V','O','D')}, + {".mp2", FOURCC('M','P','G',' '), FOURCC('T','V','O','D')}, + {".mp3", FOURCC('M','P','G',' '), FOURCC('T','V','O','D')}, + {".wav", FOURCC('W','A','V','E'), FOURCC('T','V','O','D')}, + {".bmp", FOURCC('B','M','P','f'), FOURCC('o','g','l','e')}, + {".gif", FOURCC('G','I','F','f'), FOURCC('o','g','l','e')}, + {".lbm", FOURCC('I','L','B','M'), FOURCC('G','K','O','N')}, + {".ilbm", FOURCC('I','L','B','M'), FOURCC('G','K','O','N')}, + {".jpg", FOURCC('J','P','E','G'), FOURCC('o','g','l','e')}, + {".jpeg", FOURCC('J','P','E','G'), FOURCC('o','g','l','e')}, + {".pict", FOURCC('P','I','C','T'), FOURCC('o','g','l','e')}, + {".png", FOURCC('P','N','G','f'), FOURCC('o','g','l','e')}, + {".sgi", FOURCC('.','S','G','I'), FOURCC('o','g','l','e')}, + {".tga", FOURCC('T','P','I','C'), FOURCC('o','g','l','e')}, + {".tif", FOURCC('T','I','F','F'), FOURCC('o','g','l','e')}, + {".tiff", FOURCC('T','I','F','F'), FOURCC('o','g','l','e')}, + {".htm", FOURCC('T','E','X','T'), FOURCC('M','O','S','S')}, + {".html", FOURCC('T','E','X','T'), FOURCC('M','O','S','S')}, + {".txt", FOURCC('T','E','X','T'), FOURCC('t','t','x','t')}, + {".rtf", FOURCC('T','E','X','T'), FOURCC('M','S','W','D')}, + {".c", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".C", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".cc", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".cpp", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".cxx", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".h", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".hh", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".hpp", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".hxx", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".s", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".S", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".i", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".mpg", FOURCC('M','P','E','G'), FOURCC('T','V','O','D')}, + {".mpeg", FOURCC('M','P','E','G'), FOURCC('T','V','O','D')}, + {".mov", FOURCC('M','o','o','V'), FOURCC('T','V','O','D')}, + {".fli", FOURCC('F','L','I',' '), FOURCC('T','V','O','D')}, + {".avi", FOURCC('V','f','W',' '), FOURCC('T','V','O','D')}, + {".qxd", FOURCC('X','D','O','C'), FOURCC('X','P','R','3')}, + {".hfv", FOURCC('D','D','i','m'), FOURCC('d','d','s','k')}, + {".dsk", FOURCC('D','D','i','m'), FOURCC('d','d','s','k')}, + {".img", FOURCC('r','o','h','d'), FOURCC('d','d','s','k')}, + {NULL, 0, 0} // End marker +}; + +void get_finfo(const char *path, uint32 finfo, uint32 fxinfo, bool is_dir) +{ + // Set default finder info + Mac_memset(finfo, 0, SIZEOF_FInfo); + if (fxinfo) + Mac_memset(fxinfo, 0, SIZEOF_FXInfo); + WriteMacInt16(finfo + fdFlags, DEFAULT_FINDER_FLAGS); + WriteMacInt32(finfo + fdLocation, (uint32)-1); + + // Read Finder info file + int fd = open_finf(path, O_RDONLY); + if (fd >= 0) { + ssize_t actual = read(fd, Mac2HostAddr(finfo), SIZEOF_FInfo); + if (fxinfo) + actual += read(fd, Mac2HostAddr(fxinfo), SIZEOF_FXInfo); + close(fd); + LOG("Returning finfo for %d\n", fd); + if (actual >= SIZEOF_FInfo) + return; + } + + LOG("Getting finfo from table for %d\n", fd); + // No Finder info file, translate file name extension to MacOS type/creator + if (!is_dir) { + int path_len = strlen(path); + for (int i=0; e2t_translation[i].ext; i++) { + int ext_len = strlen(e2t_translation[i].ext); + if (path_len < ext_len) + continue; + if (!strcmp(path + path_len - ext_len, e2t_translation[i].ext)) { + WriteMacInt32(finfo + fdType, e2t_translation[i].type); + WriteMacInt32(finfo + fdCreator, e2t_translation[i].creator); + break; + } + } + } +} + +void set_finfo(const char *path, uint32 finfo, uint32 fxinfo, bool is_dir) +{ + // Open Finder info file + int fd = open_finf(path, O_RDWR); + if (fd < 0) + return; + + LOG("Setting finfo for %d\n", fd); + // Write file + write(fd, Mac2HostAddr(finfo), SIZEOF_FInfo); + if (fxinfo) + write(fd, Mac2HostAddr(fxinfo), SIZEOF_FXInfo); + close(fd); +} + + +/* + * Resource fork emulation functions + */ + +uint32 get_rfork_size(const char *path) +{ + // Open resource file + int fd = open_rsrc(path, O_RDONLY); + if (fd < 0) + return 0; + + LOG("Getting fork size for %d (%d)\n", fd, XFS_LENGTH(fd)); + // Close file and return size + close(fd); + return XFS_LENGTH(fd); +} + +int open_dfork(const char *path, int flag) +{ + int fd = open(path, flag); + + if (fd >= 0) + { + LOG("Opening data fork %d\n", fd); + XFS_INDEX(fd) = -1; + XFS_OFFSET(fd) = 0; + } + + return fd; +} + +int open_rfork(const char *path, int flag) +{ + return open_rsrc(path, flag); +} + +void close_rfork(const char *path, int fd) +{ + LOG("Closing resource fork %d\n", fd); + close(fd); +} + + +/* + * Read "length" bytes from file to "buffer", + * returns number of bytes read (or -1 on error) + */ + +ssize_t extfs_read(int fd, void *buffer, size_t length) +{ + LOG("Reading file %d (%d)\n", fd, length); + return read(fd, buffer, length); +} + + +/* + * Write "length" bytes from "buffer" to file, + * returns number of bytes written (or -1 on error) + */ + +ssize_t extfs_write(int fd, void *buffer, size_t length) +{ + LOG("Writing file %d (%d)\n", fd, length); + int len = write(fd, buffer, length); + + if (XFS_INDEX(fd) >= 0) + update_helper(fd); + + return len; +} + +/* + * Seek to offset in the file, + * returns position after seek + */ + +off_t extfs_seek(int fd, off_t offset, int whence) +{ + LOG("Seeking file %d (%d/%d)\n", fd, offset, whence); + if (whence == SEEK_SET) + return lseek(fd, offset + (off_t)XFS_OFFSET(fd), whence) - (off_t)XFS_OFFSET(fd); + + return lseek(fd, offset, whence) - (off_t)XFS_OFFSET(fd); +} + +/* + * Get file status + */ + +int extfs_fstat(int fd, struct stat *buf) +{ + int ret = fstat(fd, buf); + + if (XFS_INDEX(fd) >= 0) + buf->st_size -= XFS_OFFSET(fd); + + return ret; +} + +int extfs_ftruncate(int fd, off_t length) +{ + return ftruncate(fd, length + XFS_OFFSET(fd)); +} + +/* + * Remove file/directory (and associated helper files), + * returns false on error (and sets errno) + */ + +bool extfs_remove(const char *path) +{ + // Remove helper first, don't complain if this fails + char helper_path[MAX_PATH_LENGTH]; + char xpath[MAX_PATH_LENGTH]; + + strncpy(xpath, path, MAX_PATH_LENGTH); + if (xpath[strlen(xpath) - 1] == '/') // Remove trailing "/" so that directories can also have finf + xpath[strlen(xpath) - 1] = 0; + + // generate AppleDouble filename from the original filename + char *temp = strrchr(xpath, '/'); + if (temp == NULL) + { + strcpy(helper_path, "._"); + strncat(helper_path, xpath, MAX_PATH_LENGTH); + } + else + { + strncpy(helper_path, xpath, (int)temp - (int)xpath + 1); + helper_path[(int)temp - (int)xpath + 1] = 0; + strcat(helper_path, "._"); + strcat(helper_path, &temp[1]); + } + + remove(helper_path); + + // Now remove file or directory + if (remove(path) < 0) + return false; + + return true; +} + + +/* + * Rename/move file/directory (and associated helper files), + * returns false on error (and sets errno) + */ + +bool extfs_rename(const char *old_path, const char *new_path) +{ + // Rename helper first, don't complain if this fails + char old_helper_path[MAX_PATH_LENGTH], new_helper_path[MAX_PATH_LENGTH]; + char xpath[MAX_PATH_LENGTH]; + + strncpy(xpath, old_path, MAX_PATH_LENGTH); + if (xpath[strlen(xpath) - 1] == '/') // Remove trailing "/" so that directories can also have finf + xpath[strlen(xpath) - 1] = 0; + + // generate AppleDouble filename from the original filename + char *temp = strrchr(xpath, '/'); + if (temp == NULL) + { + strcpy(old_helper_path, "._"); + strncat(old_helper_path, xpath, MAX_PATH_LENGTH); + } + else + { + strncpy(old_helper_path, xpath, (int)temp - (int)xpath + 1); + old_helper_path[(int)temp - (int)xpath + 1] = 0; + strcat(old_helper_path, "._"); + strcat(old_helper_path, &temp[1]); + } + + strncpy(xpath, new_path, MAX_PATH_LENGTH); + if (xpath[strlen(xpath) - 1] == '/') // Remove trailing "/" so that directories can also have finf + xpath[strlen(xpath) - 1] = 0; + + // generate AppleDouble filename from the original filename + temp = strrchr(xpath, '/'); + if (temp == NULL) + { + strcpy(new_helper_path, "._"); + strncat(new_helper_path, xpath, MAX_PATH_LENGTH); + } + else + { + strncpy(new_helper_path, xpath, (int)temp - (int)xpath + 1); + new_helper_path[(int)temp - (int)xpath + 1] = 0; + strcat(new_helper_path, "._"); + strcat(new_helper_path, &temp[1]); + } + + rename(old_helper_path, new_helper_path); + + // Now rename file + return rename(old_path, new_path) == 0; +} + +// Convert from the host OS filename encoding to MacRoman +const char *host_encoding_to_macroman(const char *filename) +{ + return filename; +} + +// Convert from MacRoman to host OS filename encoding +const char *macroman_to_host_encoding(const char *filename) +{ + return filename; +} diff --git a/src/PSP2/extfs_psp_old.cpp b/src/PSP2/extfs_psp_old.cpp new file mode 100644 index 0000000..1edac70 --- /dev/null +++ b/src/PSP2/extfs_psp_old.cpp @@ -0,0 +1,405 @@ +/* + * extfs_unix.cpp - MacOS file system for access native file system access, Unix specific stuff + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "sysdeps.h" +#include "extfs.h" +#include "extfs_defs.h" + +#define DEBUG 0 +#include "debug.h" + + +extern int ftruncate(int fildes, off_t length); + + +// Default Finder flags +const uint16 DEFAULT_FINDER_FLAGS = kHasBeenInited; + + +/* + * Initialization + */ + +void extfs_init(void) +{ +} + + +/* + * Deinitialization + */ + +void extfs_exit(void) +{ +} + + +/* + * Add component to path name + */ + +void add_path_component(char *path, const char *component) +{ + int l = strlen(path); + if (l < MAX_PATH_LENGTH-1 && path[l-1] != '/') { + path[l] = '/'; + path[l+1] = 0; + } + strncat(path, component, MAX_PATH_LENGTH-1); +} + + +/* + * Finder info and resource forks are kept in helper files + * + * Finder info: + * /path/.finf/file + * Resource fork: + * /path/.rsrc/file + * + * The .finf files store a FInfo/DInfo, followed by a FXInfo/DXInfo + * (16+16 bytes) + */ + +static void make_helper_path(const char *src, char *dest, const char *add, bool only_dir = false) +{ + dest[0] = 0; + + // Get pointer to last component of path + const char *last_part = strrchr(src, '/'); + if (last_part) + last_part++; + else + last_part = src; + + // Copy everything before + strncpy(dest, src, last_part-src); + dest[last_part-src] = 0; + + // Add additional component + strncat(dest, add, MAX_PATH_LENGTH-1); + + // Add last component + if (!only_dir) + strncat(dest, last_part, MAX_PATH_LENGTH-1); +} + +static int create_helper_dir(const char *path, const char *add) +{ + char helper_dir[MAX_PATH_LENGTH]; + make_helper_path(path, helper_dir, add, true); + if (helper_dir[strlen(helper_dir) - 1] == '/') // Remove trailing "/" + helper_dir[strlen(helper_dir) - 1] = 0; + return mkdir(helper_dir, 0777); +} + +static int open_helper(const char *path, const char *add, int flag) +{ + char helper_path[MAX_PATH_LENGTH]; + make_helper_path(path, helper_path, add); + + if ((flag & O_ACCMODE) == O_RDWR || (flag & O_ACCMODE) == O_WRONLY) + flag |= O_CREAT; + int fd = open(helper_path, flag, 0777); + if (fd < 0) { + if (errno == ENOENT && (flag & O_CREAT)) { + // One path component was missing, probably the helper + // directory. Try to create it and re-open the file. + int ret = create_helper_dir(path, add); + if (ret < 0) + return ret; + fd = open(helper_path, flag, 0777); + } + } + return fd; +} + +static int open_finf(const char *path, int flag) +{ + return open_helper(path, ".finf/", flag); +} + +static int open_rsrc(const char *path, int flag) +{ + return open_helper(path, ".rsrc/", flag); +} + + +/* + * Get/set finder info for file/directory specified by full path + */ + +struct ext2type { + const char *ext; + uint32 type; + uint32 creator; +}; + +static const ext2type e2t_translation[] = { + {".Z", FOURCC('Z','I','V','M'), FOURCC('L','Z','I','V')}, + {".gz", FOURCC('G','z','i','p'), FOURCC('G','z','i','p')}, + {".hqx", FOURCC('T','E','X','T'), FOURCC('S','I','T','x')}, + {".bin", FOURCC('T','E','X','T'), FOURCC('S','I','T','x')}, + {".pdf", FOURCC('P','D','F',' '), FOURCC('C','A','R','O')}, + {".ps", FOURCC('T','E','X','T'), FOURCC('t','t','x','t')}, + {".sit", FOURCC('S','I','T','!'), FOURCC('S','I','T','x')}, + {".tar", FOURCC('T','A','R','F'), FOURCC('T','A','R',' ')}, + {".uu", FOURCC('T','E','X','T'), FOURCC('S','I','T','x')}, + {".uue", FOURCC('T','E','X','T'), FOURCC('S','I','T','x')}, + {".zip", FOURCC('Z','I','P',' '), FOURCC('Z','I','P',' ')}, + {".8svx", FOURCC('8','S','V','X'), FOURCC('S','N','D','M')}, + {".aifc", FOURCC('A','I','F','C'), FOURCC('T','V','O','D')}, + {".aiff", FOURCC('A','I','F','F'), FOURCC('T','V','O','D')}, + {".au", FOURCC('U','L','A','W'), FOURCC('T','V','O','D')}, + {".mid", FOURCC('M','I','D','I'), FOURCC('T','V','O','D')}, + {".midi", FOURCC('M','I','D','I'), FOURCC('T','V','O','D')}, + {".mp2", FOURCC('M','P','G',' '), FOURCC('T','V','O','D')}, + {".mp3", FOURCC('M','P','G',' '), FOURCC('T','V','O','D')}, + {".wav", FOURCC('W','A','V','E'), FOURCC('T','V','O','D')}, + {".bmp", FOURCC('B','M','P','f'), FOURCC('o','g','l','e')}, + {".gif", FOURCC('G','I','F','f'), FOURCC('o','g','l','e')}, + {".lbm", FOURCC('I','L','B','M'), FOURCC('G','K','O','N')}, + {".ilbm", FOURCC('I','L','B','M'), FOURCC('G','K','O','N')}, + {".jpg", FOURCC('J','P','E','G'), FOURCC('o','g','l','e')}, + {".jpeg", FOURCC('J','P','E','G'), FOURCC('o','g','l','e')}, + {".pict", FOURCC('P','I','C','T'), FOURCC('o','g','l','e')}, + {".png", FOURCC('P','N','G','f'), FOURCC('o','g','l','e')}, + {".sgi", FOURCC('.','S','G','I'), FOURCC('o','g','l','e')}, + {".tga", FOURCC('T','P','I','C'), FOURCC('o','g','l','e')}, + {".tif", FOURCC('T','I','F','F'), FOURCC('o','g','l','e')}, + {".tiff", FOURCC('T','I','F','F'), FOURCC('o','g','l','e')}, + {".htm", FOURCC('T','E','X','T'), FOURCC('M','O','S','S')}, + {".html", FOURCC('T','E','X','T'), FOURCC('M','O','S','S')}, + {".txt", FOURCC('T','E','X','T'), FOURCC('t','t','x','t')}, + {".rtf", FOURCC('T','E','X','T'), FOURCC('M','S','W','D')}, + {".c", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".C", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".cc", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".cpp", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".cxx", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".h", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".hh", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".hpp", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".hxx", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".s", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".S", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".i", FOURCC('T','E','X','T'), FOURCC('R','*','c','h')}, + {".mpg", FOURCC('M','P','E','G'), FOURCC('T','V','O','D')}, + {".mpeg", FOURCC('M','P','E','G'), FOURCC('T','V','O','D')}, + {".mov", FOURCC('M','o','o','V'), FOURCC('T','V','O','D')}, + {".fli", FOURCC('F','L','I',' '), FOURCC('T','V','O','D')}, + {".avi", FOURCC('V','f','W',' '), FOURCC('T','V','O','D')}, + {".qxd", FOURCC('X','D','O','C'), FOURCC('X','P','R','3')}, + {".hfv", FOURCC('D','D','i','m'), FOURCC('d','d','s','k')}, + {".dsk", FOURCC('D','D','i','m'), FOURCC('d','d','s','k')}, + {".img", FOURCC('r','o','h','d'), FOURCC('d','d','s','k')}, + {NULL, 0, 0} // End marker +}; + +void get_finfo(const char *path, uint32 finfo, uint32 fxinfo, bool is_dir) +{ + // Set default finder info + Mac_memset(finfo, 0, SIZEOF_FInfo); + if (fxinfo) + Mac_memset(fxinfo, 0, SIZEOF_FXInfo); + WriteMacInt16(finfo + fdFlags, DEFAULT_FINDER_FLAGS); + WriteMacInt32(finfo + fdLocation, (uint32)-1); + + // Read Finder info file + int fd = open_finf(path, O_RDONLY); + if (fd >= 0) { + ssize_t actual = read(fd, Mac2HostAddr(finfo), SIZEOF_FInfo); + if (fxinfo) + actual += read(fd, Mac2HostAddr(fxinfo), SIZEOF_FXInfo); + close(fd); + if (actual >= SIZEOF_FInfo) + return; + } + + // No Finder info file, translate file name extension to MacOS type/creator + if (!is_dir) { + int path_len = strlen(path); + for (int i=0; e2t_translation[i].ext; i++) { + int ext_len = strlen(e2t_translation[i].ext); + if (path_len < ext_len) + continue; + if (!strcmp(path + path_len - ext_len, e2t_translation[i].ext)) { + WriteMacInt32(finfo + fdType, e2t_translation[i].type); + WriteMacInt32(finfo + fdCreator, e2t_translation[i].creator); + break; + } + } + } +} + +void set_finfo(const char *path, uint32 finfo, uint32 fxinfo, bool is_dir) +{ + // Open Finder info file + int fd = open_finf(path, O_RDWR); + if (fd < 0) + return; + + // Write file + write(fd, Mac2HostAddr(finfo), SIZEOF_FInfo); + if (fxinfo) + write(fd, Mac2HostAddr(fxinfo), SIZEOF_FXInfo); + close(fd); +} + +/* + * Resource fork emulation functions + */ + +uint32 get_rfork_size(const char *path) +{ + // Open resource file + int fd = open_rsrc(path, O_RDONLY); + if (fd < 0) + return 0; + + // Get size + off_t size = lseek(fd, 0, SEEK_END); + + // Close file and return size + close(fd); + return size < 0 ? 0 : size; +} + +int open_dfork(const char *path, int flag) +{ + return open(path, flag); +} + +int open_rfork(const char *path, int flag) +{ + return open_rsrc(path, flag); +} + +void close_rfork(const char *path, int fd) +{ + close(fd); +} + +/* + * Read "length" bytes from file to "buffer", + * returns number of bytes read (or -1 on error) + */ + +ssize_t extfs_read(int fd, void *buffer, size_t length) +{ + return read(fd, buffer, length); +} + +/* + * Write "length" bytes from "buffer" to file, + * returns number of bytes written (or -1 on error) + */ + +ssize_t extfs_write(int fd, void *buffer, size_t length) +{ + return write(fd, buffer, length); +} + +/* + * Seek to offset in the file, + * returns position after seek + */ + +off_t extfs_seek(int fd, off_t offset, int whence) +{ + return lseek(fd, offset, whence); +} + +/* + * Get file status + */ + +int extfs_fstat(int fd, struct stat *buf) +{ + return fstat(fd, buf); +} + +int extfs_ftruncate(int fd, off_t length) +{ + return ftruncate(fd, length); +} + +/* + * Remove file/directory (and associated helper files), + * returns false on error (and sets errno) + */ + +bool extfs_remove(const char *path) +{ + // Remove helpers first, don't complain if this fails + char helper_path[MAX_PATH_LENGTH]; + make_helper_path(path, helper_path, ".finf/", false); + remove(helper_path); + make_helper_path(path, helper_path, ".rsrc/", false); + remove(helper_path); + + // Now remove file or directory (and helper directories in the directory) + if (remove(path) < 0) { + if (errno == EISDIR || errno == ENOTEMPTY) { + helper_path[0] = 0; + strncpy(helper_path, path, MAX_PATH_LENGTH-1); + add_path_component(helper_path, ".finf"); + rmdir(helper_path); + helper_path[0] = 0; + strncpy(helper_path, path, MAX_PATH_LENGTH-1); + add_path_component(helper_path, ".rsrc"); + rmdir(helper_path); + return rmdir(path) == 0; + } else + return false; + } + return true; +} + + +/* + * Rename/move file/directory (and associated helper files), + * returns false on error (and sets errno) + */ + +bool extfs_rename(const char *old_path, const char *new_path) +{ + // Rename helpers first, don't complain if this fails + char old_helper_path[MAX_PATH_LENGTH], new_helper_path[MAX_PATH_LENGTH]; + make_helper_path(old_path, old_helper_path, ".finf/", false); + make_helper_path(new_path, new_helper_path, ".finf/", false); + create_helper_dir(new_path, ".finf/"); + rename(old_helper_path, new_helper_path); + make_helper_path(old_path, old_helper_path, ".rsrc/", false); + make_helper_path(new_path, new_helper_path, ".rsrc/", false); + create_helper_dir(new_path, ".rsrc/"); + rename(old_helper_path, new_helper_path); + + // Now rename file + return rename(old_path, new_path) == 0; +} diff --git a/src/PSP2/fonts/ChicagoFLF.ttf b/src/PSP2/fonts/ChicagoFLF.ttf new file mode 100644 index 0000000..91e2ae9 Binary files /dev/null and b/src/PSP2/fonts/ChicagoFLF.ttf differ diff --git a/src/PSP2/fonts/README.ChicagoFLF b/src/PSP2/fonts/README.ChicagoFLF new file mode 100644 index 0000000..11a18e6 --- /dev/null +++ b/src/PSP2/fonts/README.ChicagoFLF @@ -0,0 +1,23 @@ +PUBLIC DOMAIN (statement from original designer via email 2014/01/30) + +The FLF were created by various authors including myself and Mike Wright. When Casady & Greene, Inc. closed the rights went back to the authors. I created ChicagoFLF and CheckboxFLF. You are free to use them as you wish. I consider those two in the public domain. + +Regards, +Robin Casady + +VERSION HISTORY + +2.0 +No changes were made except the following: + +* Moved symbols to correct Unicode positions. +* Incorporated additional symbols from CheckboxFLF, which used identical + Basic Latin glyphs, and thus was essentially the "same" font with + different symbols. +* Very simple compositions from existing glyphs, and other homoglyphic + supplementation. +* Updates to some metadata. + +Because no outlines were added or modified, this is, in a very real sense, +the "same" font as Robin's, so I've kept the same name and incremented +the version. diff --git a/src/PSP2/ftruncate.cpp b/src/PSP2/ftruncate.cpp new file mode 100644 index 0000000..74290ca --- /dev/null +++ b/src/PSP2/ftruncate.cpp @@ -0,0 +1,44 @@ +#include +#include +#include +#include + +#include "sysdeps.h" + +#ifdef __cplusplus +extern "C" { +#endif +int truncate(const char *path, off_t length); +#ifdef __cplusplus +} +#endif + + +#define __PSP_FILENO_MAX 1024 + +#define __PSP_IS_FD_VALID(FD) \ + ( (FD >= 0) && (FD < __PSP_FILENO_MAX) && (__psp_descriptormap[FD] != NULL) ) + +typedef enum { + __PSP_DESCRIPTOR_TYPE_FILE , + __PSP_DESCRIPTOR_TYPE_PIPE , + __PSP_DESCRIPTOR_TYPE_SOCKET, + __PSP_DESCRIPTOR_TYPE_TTY +} __psp_fdman_fd_types; + +typedef struct { + char * filename; + uint8 type; + uint32 sce_descriptor; + uint32 flags; + uint32 ref_count; +} __psp_descriptormap_type; + +//extern __psp_descriptormap_type *__psp_descriptormap[__PSP_FILENO_MAX]; + + +int ftruncate(int fd, off_t length) +{ + + return -1; +} diff --git a/src/PSP2/gui_psp.cpp b/src/PSP2/gui_psp.cpp new file mode 100644 index 0000000..e902210 --- /dev/null +++ b/src/PSP2/gui_psp.cpp @@ -0,0 +1,397 @@ +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "gui_psp.h" +#include "sysdeps.h" +#include "user_strings.h" +#include "user_strings_psp.h" +#include "main.h" +#include "ime_dialog.h" + +#define Get_String(x) const_cast(GetString(x)) + +extern char *RequestFile (char *initialPath); + +extern bool emerg_quit; // Flag: emergency quit requested + + +/* + * OSK support code + * + */ + +#define BUF_WIDTH (512) +//#define SCR_WIDTH (480) +//#define SCR_HEIGHT (272) +#define PIXEL_SIZE (4) /* change this if you change to another screenmode */ +#define FRAME_SIZE (BUF_WIDTH * SCR_HEIGHT * PIXEL_SIZE) +#define ZBUF_SIZE (BUF_WIDTH SCR_HEIGHT * 2) /* zbuffer seems to be 16-bit? */ +int FONT_SIZE = 26; + +static unsigned int __attribute__((aligned(16))) list[4096]; +vita2d_font *font; + +int get_text_osk(char *input, char *intext, char *desc) +{ + return 0; +} + +void gui_font_init(void) +{ + font = vita2d_load_font_file("app0:/fonts/ChicagoFLF.ttf"); +} + + +/* + * GUI support code + * + */ + +void gui_PrePrint(void) +{ + vita2d_start_drawing(); + vita2d_set_clear_color(0xFF7F7F7F); + vita2d_clear_screen(); +} + +void gui_PostPrint(void) +{ + vita2d_end_drawing(); + vita2d_common_dialog_update(); + vita2d_swap_buffers(); +} + +int gui_PrintWidth(char *text) +{ + return vita2d_font_text_width(font, FONT_SIZE, text); +} + +void gui_Print(char *text, uint32 fc, uint32 bc, int x, int y) +{ + vita2d_font_draw_text(font, x, y, fc, FONT_SIZE, text); +} + +void gui_Print_Left(char* text, uint32 fc) +{ + int xpos = 20; + int ypos = 20 + FONT_SIZE; + gui_PrePrint(); + gui_Print(text, fc, 0x0, xpos, ypos); + gui_PostPrint(); +} + +char *RequestString (char *initialStr) +{ + int ok, i; + static char str[255]; + char* desc = "Enter String"; + + ok = get_text_osk(str, initialStr, desc); + if (ok) + return str; + + return 0; +} + +/* + * GUI code + * + */ + +int gui_menu_len(struct gui_menu *menu) +{ + int c = 0; + while (menu[c].flags != GUI_END_OF_MENU) + c++; + return c; +} + +int gui_list_len(struct gui_list *list) +{ + int c = 0; + while (list[c].index != GUI_END_OF_LIST) + c++; + return c; +} + +void do_gui(struct gui_menu *menu, void *menufn, char *exit_msg) +{ + SceCtrlData pad; + int msy, mlen; + int i, j, k, min, max; + int csel = 0; + uint32 fc, bc; + int tx, ty; + char line[69]; + + mlen = gui_menu_len(menu); + msy = 272 - mlen*FONT_SIZE*1.5/2; + + sceCtrlPeekBufferPositive(0, &pad, 1); + while (!(pad.buttons & SCE_CTRL_CIRCLE)) + { + void (*fnptr)(struct gui_menu *); + fnptr = (void (*)(struct gui_menu *))menufn; + if (fnptr) + (*fnptr)(menu); + if (pad.buttons & SCE_CTRL_CROSS) + { + if (menu[csel].enable == GUI_ENABLED) + switch (menu[csel].flags & 0x0FFFFFFF) + { + void (*fnptr)(void *); + char temp[256]; + char *req; + + case GUI_MENU: + while (pad.buttons & SCE_CTRL_CROSS) + sceCtrlPeekBufferPositive(0, &pad, 1); + do_gui((struct gui_menu *)menu[csel].field1, menu[csel].field2, Get_String(STR_MENU_BACK)); + break; + case GUI_FUNCTION: + while (pad.buttons & SCE_CTRL_CROSS) + sceCtrlPeekBufferPositive(0, &pad, 1); + fnptr = (void (*)(void *))menu[csel].field1; + (*fnptr)(menu[csel].field2); + break; + case GUI_TOGGLE: + while (pad.buttons & SCE_CTRL_CROSS) + sceCtrlPeekBufferPositive(0, &pad, 1); + *(int *)menu[csel].field1 ^= 1; + break; + case GUI_SELECT: + if (pad.buttons & (SCE_CTRL_RIGHT | SCE_CTRL_DOWN)) + { + // next selection + while (pad.buttons & (SCE_CTRL_RIGHT | SCE_CTRL_DOWN)) + sceCtrlPeekBufferPositive(0, &pad, 1); + j = gui_list_len((struct gui_list *)menu[csel].field1); + k = *(int *)menu[csel].field2; + k = (k == (j - 1)) ? 0 : k + 1; + *(int *)menu[csel].field2 = k; + } + if (pad.buttons & (SCE_CTRL_LEFT | SCE_CTRL_UP)) + { + // previous selection + while (pad.buttons & (SCE_CTRL_LEFT | SCE_CTRL_UP)) + sceCtrlPeekBufferPositive(0, &pad, 1); + j = gui_list_len((struct gui_list *)menu[csel].field1); + k = *(int *)menu[csel].field2; + k = (k == 0) ? j - 1 : k - 1; + *(int *)menu[csel].field2 = k; + } + break; + case GUI_FILE: + while (pad.buttons & SCE_CTRL_CROSS) + sceCtrlPeekBufferPositive(0, &pad, 1); + if (*(int *)menu[csel].field1) + free(*(char **)menu[csel].field1); + strcpy(temp, HOME_DIR); + strcat(temp, (char *)menu[csel].field2); + strcat(temp, "/"); + req = RequestFile(temp); + *(char **)menu[csel].field1 = req ? strdup(req) : 0; + break; + case GUI_STRING: + while (pad.buttons & SCE_CTRL_CROSS) + sceCtrlPeekBufferPositive(0, &pad, 1); + temp[0] = 0; + if (*(int *)menu[csel].field1) + { + strcpy(temp, *(char **)menu[csel].field1); + free(*(char **)menu[csel].field1); + } + req = RequestString(temp); + *(char **)menu[csel].field1 = req ? strdup(req) : 0; + break; + case GUI_INTEGER: + if (menu[csel].field2) + { + int *rng = (int *)menu[csel].field2; + min = rng[0]; + max = rng[1]; + } + else + { + min = (int)0x80000000; + max = 0x7FFFFFFF; + } + if (pad.buttons & SCE_CTRL_RIGHT) + { + // +1 + //while (pad.buttons & SCE_CTRL_RIGHT) + // sceCtrlPeekBufferPositive(0, &pad, 1); + sceKernelDelayThread(200*1000); + *(int *)menu[csel].field1 += 1; + if (*(int *)menu[csel].field1 > max) + *(int *)menu[csel].field1 = max; + } + if (pad.buttons & SCE_CTRL_LEFT) + { + // -1 + //while (pad.buttons & SCE_CTRL_LEFT) + // sceCtrlPeekBufferPositive(0, &pad, 1); + sceKernelDelayThread(200*1000); + *(int *)menu[csel].field1 -= 1; + if (*(int *)menu[csel].field1 < min) + *(int *)menu[csel].field1 = min; + } + if (pad.buttons & SCE_CTRL_DOWN) + { + // +10 + //while (pad.buttons & SCE_CTRL_DOWN) + // sceCtrlPeekBufferPositive(0, &pad, 1); + sceKernelDelayThread(200*1000); + *(int *)menu[csel].field1 += 10; + if (*(int *)menu[csel].field1 > max) + *(int *)menu[csel].field1 = max; + } + if (pad.buttons & SCE_CTRL_UP) + { + // -10 + //while (pad.buttons & SCE_CTRL_UP) + // sceCtrlPeekBufferPositive(0, &pad, 1); + sceKernelDelayThread(200*1000); + *(int *)menu[csel].field1 -= 10; + if (*(int *)menu[csel].field1 < min) + *(int *)menu[csel].field1 = min; + } + break; + } + } + else + { + if (pad.buttons & SCE_CTRL_UP) + { + while (pad.buttons & SCE_CTRL_UP) + sceCtrlPeekBufferPositive(0, &pad, 1); + csel = (csel == 0) ? mlen - 1 : csel - 1; + } + if (pad.buttons & SCE_CTRL_DOWN) + { + while (pad.buttons & SCE_CTRL_DOWN) + sceCtrlPeekBufferPositive(0, &pad, 1); + csel = (csel == (mlen - 1)) ? 0 : csel + 1; + } + } + + sceDisplayWaitVblankStart(); + gui_PrePrint(); + fc = 0xFFFFFFFF; + bc = 0xFF000000; + + switch (menu[csel].flags & 0x0FFFFFFF) + { + case GUI_MENU: + gui_Print(Get_String(STR_MENU_MENU), fc, bc, 14, 530); + break; + case GUI_FUNCTION: + gui_Print(Get_String(STR_MENU_FUNCTION), fc, bc, 14, 530); + break; + case GUI_SELECT: + gui_Print(Get_String(STR_MENU_SELECT), fc, bc, 14, 530); + break; + case GUI_TOGGLE: + gui_Print(Get_String(STR_MENU_TOGGLE), fc, bc, 14, 530); + break; + case GUI_INTEGER: + gui_Print(Get_String(STR_MENU_INTEGER), fc, bc, 14, 530); + break; + case GUI_FILE: + gui_Print(Get_String(STR_MENU_FILE), fc, bc, 14, 530); + break; + case GUI_STRING: + gui_Print(Get_String(STR_MENU_STRING), fc, bc, 14, 530); + break; + } + sprintf(line, "O = %s", exit_msg); + gui_Print(line, fc, bc, 946 - gui_PrintWidth(line), 530); + + for (i=0; i +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gui_psp.h" +#include "debugScreen.h" + +#include "sysdeps.h" + +#include +using std::string; + +#include "cpu_emulation.h" +#include "sys.h" +#include "rom_patches.h" +#include "xpram.h" +#include "timer.h" +#include "video.h" +#include "emul_op.h" +#include "prefs.h" +#include "prefs_editor.h" +#include "macos_util.h" +#include "user_strings.h" +#include "version.h" +#include "main.h" + +#define Get_String(x) const_cast(GetString(x)) + + +#define PSP_VERS 1 +#define PSP_REVS 0 + + +#define DEBUG 0 +#include "debug.h" + +void gui_font_init(void); +void do_gui(struct gui_menu *menu, void *menufn, char *exit_msg); + +// Constants +const char ROM_FILE_NAME[] = "roms/mac.rom"; // try to open this file if "rom" not in prefs + +const int SCRATCH_MEM_SIZE = 0x10000; // Size of scratch memory area + + +// Global variables + +// CPU and FPU type, addressing mode +int CPUType; +bool CPUIs68060; +int FPUType; +bool TwentyFourBitAddressing; + +static uint8 last_xpram[XPRAM_SIZE]; // Buffer for monitoring XPRAM changes + +static bool tick_thread_active = false; // Flag: 60Hz thread installed +static volatile bool tick_thread_cancel = false; // Flag: Cancel 60Hz thread +//static int tick_thread; // 60Hz thread + +#if USE_SCRATCHMEM_SUBTERFUGE +uint8 *ScratchMem = NULL; // Scratch memory for Mac ROM writes +#endif + +bool emerg_quit = false; // Flag: emergency quit requested + +char* psp_home = HOME_DIR; + +int psp_net_error = 0; +int psp_net_available = 0; + +char szMyIPAddr[32]; +char *psp_local_ip_addr = NULL; // String: the local IP address for the PSP + +#define KERNELMODE 0 /* 1 is untested but required for some keyboards to change baudrate */ + + +extern bool refresh_okay; +extern void psp_video_setup(void); + +extern void Sys_drive_stop(void); +extern void Sys_drive_restart(void); + +// Prototypes +static int tick_func(SceSize args, void *argp); +static void one_tick(void); + +void psp_time_init(void) +{ + /* + int tzOffset = 0; + sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_TIMEZONE, &tzOffset); + int tzOffsetAbs = tzOffset < 0 ? -tzOffset : tzOffset; + int hours = tzOffsetAbs / 60; + int minutes = tzOffsetAbs - hours * 60; + int pspDaylight = 0; + sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_DAYLIGHTSAVINGS, &pspDaylight); + static char tz[18]; + sprintf(tz, "GMT%s%02i:%02i%s", tzOffset < 0 ? "+" : "-", hours, minutes, pspDaylight ? " DST" : ""); + setenv("TZ", tz, 1); + tzset(); + */ +} + +/* + * Main program + */ + +int main(int argc, char **argv) +{ + // Set common dialog config + sceAppUtilInit(&(SceAppUtilInitParam){}, &(SceAppUtilBootParam){}); + sceCommonDialogSetConfigParam(&(SceCommonDialogConfigParam){}); + + char str[256]; + + psvDebugScreenInit(); + psvDebugScreenSetBgColor(0xFF000000); + psvDebugScreenSetFgColor(0xFFFFFFFF); + psvDebugScreenClear(0xFF000000); + + sceCtrlSetSamplingMode(SCE_CTRL_MODE_ANALOG); + sceTouchSetSamplingState(SCE_TOUCH_PORT_FRONT, SCE_TOUCH_SAMPLING_STATE_START); + + int d = sceIoDopen(HOME_DIR "cdroms"); + if (d >= 0) + sceIoDclose(d); + else + sceIoMkdir(HOME_DIR "cdroms", 0777); + + d = sceIoDopen(HOME_DIR "disks"); + if (d >= 0) + sceIoDclose(d); + else + sceIoMkdir(HOME_DIR "disks", 0777); + + d = sceIoDopen(HOME_DIR "files"); + if (d >= 0) + sceIoDclose(d); + else + sceIoMkdir(HOME_DIR "files", 0777); + + d = sceIoDopen(HOME_DIR "hardfiles"); + if (d >= 0) + sceIoDclose(d); + else + sceIoMkdir(HOME_DIR "hardfiles", 0777); + + d = sceIoDopen(HOME_DIR "imaps"); + if (d >= 0) + sceIoDclose(d); + else + sceIoMkdir(HOME_DIR "imaps", 0777); + + d = sceIoDopen(HOME_DIR "roms"); + if (d >= 0) + sceIoDclose(d); + else + sceIoMkdir(HOME_DIR "roms", 0777); + + psp_time_init(); + + vita2d_init(); + + gui_font_init(); + + // Initialize variables + RAMBaseHost = NULL; + ROMBaseHost = NULL; + + // Print some info + psvDebugScreenSetBgColor(0xFF000000); + psvDebugScreenSetFgColor(0xFFFFFFFF); + psvDebugScreenClear(0xFF000000); + psvDebugScreenPrintf("\n\n "); + psvDebugScreenPrintf(Get_String(STR_ABOUT_TEXT1), VERSION_MAJOR, VERSION_MINOR); + psvDebugScreenPrintf("\n %s\n", Get_String(STR_ABOUT_TEXT2)); + sceKernelDelayThread(2*1000*1000); + + // Read preferences + PrefsInit(argc, argv); + // Init system routines + SysInit(); + + // Show preferences editor + if (!PrefsFindBool("nogui")) + if (!PrefsEditor()) + QuitEmulator(); + + // set CPU frequency + int freq = PrefsFindInt32("pspspeed"); + switch (freq) + { + case 1: + scePowerSetArmClockFrequency(111); + break; + case 2: + scePowerSetArmClockFrequency(166); + break; + case 3: + scePowerSetArmClockFrequency(222); + break; + case 4: + scePowerSetArmClockFrequency(266); + break; + case 5: + scePowerSetArmClockFrequency(333); + break; + case 6: + scePowerSetArmClockFrequency(444); + break; + } + + // Read RAM size + RAMSize = PrefsFindInt32("ramsize") & 0xfff00000; // Round down to 1MB boundary + if (RAMSize < 1024*1024) { + WarningAlert(Get_String(STR_SMALL_RAM_WARN)); + RAMSize = 1024*1024; + } + + // Create areas for Mac RAM and ROM + uint8 *ram_rom_area = (uint8 *)memalign(64, RAMSize + 0x100000); + if (ram_rom_area == NULL) { + ErrorAlert(STR_NO_MEM_ERR); + QuitEmulator(); + } + + RAMBaseHost = ram_rom_area; + ROMBaseHost = RAMBaseHost + RAMSize; + +#if USE_SCRATCHMEM_SUBTERFUGE + // Allocate scratch memory + ScratchMem = (uint8 *)memalign(64, SCRATCH_MEM_SIZE); + if (ScratchMem == NULL) { + ErrorAlert(STR_NO_MEM_ERR); + QuitEmulator(); + } + ScratchMem += SCRATCH_MEM_SIZE/2; // ScratchMem points to middle of block +#endif + +#if DIRECT_ADDRESSING + // RAMBaseMac shall always be zero + MEMBaseDiff = (uintptr)RAMBaseHost; + RAMBaseMac = 0; + ROMBaseMac = Host2MacAddr(ROMBaseHost); +#endif + D(bug("Mac RAM starts at %p (%08x)\n", RAMBaseHost, RAMBaseMac)); + D(bug("Mac ROM starts at %p (%08x)\n", ROMBaseHost, ROMBaseMac)); + + // Get rom file path from preferences + const char *rom_path = PrefsFindString("rom"); + + // Load Mac ROM + int rom_fd = open(rom_path ? rom_path : ROM_FILE_NAME, O_RDONLY); + if (rom_fd < 0) { + ErrorAlert(STR_NO_ROM_FILE_ERR); + QuitEmulator(); + } + ROMSize = lseek(rom_fd, 0, SEEK_END); + uint32 rom_start = ROMSize & 65535; // any odd number of bytes to 64K should be just a header + if ((ROMSize-rom_start) != 64*1024 && (ROMSize-rom_start) != 128*1024 && (ROMSize-rom_start) != 256*1024 && (ROMSize-rom_start) != 512*1024 && (ROMSize-rom_start) != 1024*1024) { + ErrorAlert(STR_ROM_SIZE_ERR); + close(rom_fd); + QuitEmulator(); + } + lseek(rom_fd, rom_start, SEEK_SET); + if (read(rom_fd, ROMBaseHost, ROMSize-rom_start) != (ssize_t)(ROMSize-rom_start)) { + ErrorAlert(STR_ROM_FILE_READ_ERR); + close(rom_fd); + QuitEmulator(); + } + + // Initialize everything + if (!InitAll()) + QuitEmulator(); + D(bug("Initialization complete\n")); + +#ifndef USE_CPU_EMUL_SERVICES + // start 60Hz thread + int thid = sceKernelCreateThread("tick_thread", tick_func, 0x10000100, 0x1800, 0, 0, NULL); + + if(thid < 0) { + sprintf(str, Get_String(STR_TICK_THREAD_ERR)); + ErrorAlert(str); + QuitEmulator(); + } + sceKernelStartThread(thid, 0, 0); + tick_thread_active = true; + D(bug("60Hz thread started\n")); + +#endif + // Start 68k and jump to ROM boot routine + D(bug("Starting emulation...\n")); + Start680x0(); + + QuitEmulator(); + return 0; +} + + +/* + * Quit emulator + */ + +void QuitEmulator(void) +{ + D(bug("QuitEmulator\n")); + +#if EMULATED_68K + // Exit 680x0 emulation + Exit680x0(); +#endif + +#if defined(USE_CPU_EMUL_SERVICES) + // Show statistics + uint64 emulated_ticks_end = GetTicks_usec(); + D(bug("%ld ticks in %ld usec = %f ticks/sec [%ld tick checks]\n", + (long)emulated_ticks_count, (long)(emulated_ticks_end - emulated_ticks_start), + emulated_ticks_count * 1000000.0 / (emulated_ticks_end - emulated_ticks_start), (long)n_check_ticks)); +#else + // Stop 60Hz thread + if (tick_thread_active) { + tick_thread_cancel = true; + sceKernelDelayThread(100*1000); + } +#endif + + // Deinitialize everything + ExitAll(); + + // Free ROM/RAM areas + if (RAMBaseHost != NULL) { + free(RAMBaseHost); + RAMBaseHost = NULL; + ROMBaseHost = NULL; + } + +#if USE_SCRATCHMEM_SUBTERFUGE + // Delete scratch memory area + if (ScratchMem != NULL) { + free((void *)(ScratchMem - SCRATCH_MEM_SIZE/2)); + ScratchMem = NULL; + } +#endif + + // Exit system routines + SysExit(); + + // Exit preferences + PrefsExit(); + + sceKernelExitProcess(0); + exit(0); +} + + +/* + * Code was patched, flush caches if neccessary (i.e. when using a real 680x0 + * or a dynamically recompiling emulator) + */ + +void FlushCodeCache(void *start, uint32 size) +{ + // not needed yet + //sceKernelDcacheWritebackAll(); + //sceKernelIcacheClearAll(); +} + + +/* + * Mutexes + */ + +struct B2_mutex { + int dummy; +}; + +B2_mutex *B2_create_mutex(void) +{ + return new B2_mutex; +} + +void B2_lock_mutex(B2_mutex *mutex) +{ +} + +void B2_unlock_mutex(B2_mutex *mutex) +{ +} + +void B2_delete_mutex(B2_mutex *mutex) +{ + delete mutex; +} + + +/* + * Interrupt flags (must be handled atomically!) + */ + +uint32 InterruptFlags = 0; + +#if EMULATED_68K +void SetInterruptFlag(uint32 flag) +{ + // PSP uses cooperative multitasking, so no need to worry + InterruptFlags |= flag; +} + +void ClearInterruptFlag(uint32 flag) +{ + // PSP uses cooperative multitasking, so no need to worry + InterruptFlags &= ~flag; +} +#endif + +/* + * XPRAM watchdog thread (saves XPRAM every minute) + */ + +static void xpram_watchdog(void) +{ + if (memcmp(last_xpram, XPRAM, XPRAM_SIZE)) { + memcpy(last_xpram, XPRAM, XPRAM_SIZE); + SaveXPRAM(); + } +} + + +static void one_second(void) +{ + // Pseudo Mac 1Hz interrupt, update local time + WriteMacInt32(0x20c, TimerDateTime()); + + SetInterruptFlag(INTFLAG_1HZ); + TriggerInterrupt(); + + static int second_counter = 0; + if (++second_counter > 60) { + second_counter = 0; + xpram_watchdog(); + } +} + +static void one_tick(void) +{ + static int tick_counter = 0; + if (++tick_counter > 60) { + tick_counter = 0; + one_second(); + } + + // Trigger 60Hz interrupt + if (ROMVersion != ROM_VERSION_CLASSIC || HasMacStarted()) { + SetInterruptFlag(INTFLAG_60HZ); + TriggerInterrupt(); + } +} + +/* + * 60Hz thread (really 60.15 Hz or 59.94 Hz if wait on vblank) + */ + +static int tick_func(SceSize args, void *argp) +{ + bool timing = PrefsFindBool("relaxed60hz"); + + if (timing) + { + while (!tick_thread_cancel) + { + one_tick(); + sceKernelDelayThread(16625); + } + } + else + { + uint64 next = GetTicks_usec(); + while (!tick_thread_cancel) + { + one_tick(); + next += 16625; + int64 delay = next - GetTicks_usec(); + if (delay > 0) + Delay_usec(delay); + else if (delay < -16625) + next = GetTicks_usec(); + } + } + + sceKernelExitDeleteThread(0); + return 0; +} + + +/* + * Display alert + */ + +void display_alert(char *title, char *prefix, char *button, char *text) +{ + struct gui_menu AlertMenu[] = { + { "", GUI_CENTER | GUI_TEXT, (void *)0xFFFFFF, (void *)0x1020FF, GUI_DISABLED }, // title + { "", GUI_CENTER | GUI_DIVIDER, 0, 0, GUI_DISABLED }, + { "", GUI_CENTER | GUI_STRING, 0, 0, GUI_DISABLED }, // prefix: text + { 0, GUI_END_OF_MENU, 0, 0, 0 } // end of menu + }; + + AlertMenu[0].text = title; + AlertMenu[2].text = prefix; + AlertMenu[2].field1 = (void *)&text; + + do_gui(AlertMenu, NULL, button); +} + + +/* + * Display error alert + */ + +void ErrorAlert(const char *text) +{ + if (PrefsFindBool("nogui")) + printf(Get_String(STR_SHELL_ERROR_PREFIX), text); + else + display_alert(Get_String(STR_ERROR_ALERT_TITLE), Get_String(STR_GUI_ERROR_PREFIX), Get_String(STR_QUIT_BUTTON), const_cast(text)); +} + + +/* + * Display warning alert + */ + +void WarningAlert(const char *text) +{ + if (PrefsFindBool("nogui")) + printf(Get_String(STR_SHELL_WARNING_PREFIX), text); + else + display_alert(Get_String(STR_WARNING_ALERT_TITLE), Get_String(STR_GUI_WARNING_PREFIX), Get_String(STR_OK_BUTTON), const_cast(text)); +} + + +/* + * Display choice alert + */ + +bool ChoiceAlert(const char *text, const char *pos, const char *neg) +{ + int choice; + + struct gui_list choice_list[] = { + { "", 0 }, + { "", 1 }, + { 0, GUI_END_OF_LIST } + }; + + struct gui_menu ChoiceMenu[] = { + { "Alert! Please make a choice.", GUI_CENTER | GUI_TEXT, (void *)0xFFFFFF, (void *)0x1020FF, GUI_DISABLED }, + { "", GUI_CENTER | GUI_DIVIDER, 0, 0, GUI_DISABLED }, + { "", GUI_CENTER | GUI_SELECT, &choice_list, &choice, GUI_ENABLED }, // text: pos/neg + { 0, GUI_END_OF_MENU, 0, 0, 0 } // end of menu + }; + + ChoiceMenu[2].text = const_cast(text); + choice_list[0].text = const_cast(pos); + choice_list[1].text = const_cast(neg); + choice = 0; // default to pos choice + + do_gui(ChoiceMenu, NULL, "Select current choice"); + + return choice ? false : true; +} diff --git a/src/PSP2/prefs_editor_psp.cpp b/src/PSP2/prefs_editor_psp.cpp new file mode 100644 index 0000000..be73ecc --- /dev/null +++ b/src/PSP2/prefs_editor_psp.cpp @@ -0,0 +1,655 @@ +/* + * prefs_editor_psp.cpp - Preferences editor, PSP implementation + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include +#include +#include +#include + +#include +#include + +#include "gui_psp.h" + +extern void do_gui(struct gui_menu *menu, void *menufn, char *exit_msg); +extern char *RequestString (char *initialStr); + +#include "version.h" +#include "sysdeps.h" +#include "prefs.h" +#include "prefs_editor.h" +#include "user_strings.h" +#include "user_strings_psp.h" + +#define Get_String(x) const_cast(GetString(x)) + +/* + * + * GUI variables + * + */ + +// prefs with default values +int psp_screen_mode = 1; // 640x480 +int psp_screen_depth = 1; // 256 color +int psp_screen_rate = 0; // 60 Hz +int psp_sound_enable = 1; // sound on + +int psp_ram_size = 12; // 12 MB +int psp_model_id = 1; // Quadra 900 +int psp_mac_cpu = 4; // 68040 +char *psp_rom_file = NULL; + +int psp_seriala_select = 0; // disabled +int psp_serialb_select = 0; // disabled +int psp_udp_enable = 0; // UDP Tunnel disabled +int psp_udp_port = 6066; // UDP Tunnel port +int psp_net_accesspoint = 0; // connect to first access point + +int psp_boot_select = 0; // boot any device +int psp_extfs_enable = 0; // disable access to memstick +char *psp_hardfile0 = NULL; +char *psp_hardfile1 = NULL; +char *psp_hardfile2 = NULL; +char *psp_hardfile3 = NULL; +char *psp_cdromfile = NULL; +char *psp_floppyfile = NULL; +int psp_file_size = 0; // start at 100 MB +char *psp_hardfile = NULL; + +int psp_cpu_speed = 0; // default speed + +int psp_lcd_aspect = 0; // 4:3 +int psp_lcd_border = 1; // default to inverting the data + +int psp_60hz_timing = 1; // default to relaxed timing + +extern char *psp_floppy_inserted; // String: filename of floppy inserted +extern char *psp_cdrom_inserted; // String: filename of cdrom inserted + +// Memory support code + +#define MEMORY_USER_SIZE 0x04000000 + +static uint32 memFreeSpace(uint32 inAccuracy) { + if(!inAccuracy) + inAccuracy = 1; + + uint32 tempBlockSize = (MEMORY_USER_SIZE >> 1); + uint32 tempFreeSpace = 0; + void* tempPointers[8192]; + uint32 tempPtr = 0; + while((tempPtr < 8192) && (tempBlockSize > inAccuracy)) { + tempPointers[tempPtr] = malloc(tempBlockSize); + while(tempPointers[tempPtr]) { + tempPtr++; + tempFreeSpace += tempBlockSize; + tempPointers[tempPtr] = malloc(tempBlockSize); + } + tempBlockSize >>= 1; + } + + tempPtr = 0; + while(tempPointers[tempPtr]) { + free(tempPointers[tempPtr]); + tempPtr++; + } + + return tempFreeSpace; +} + +static int psp_amount_free(void) +{ + return (memFreeSpace(256*1024) - 1792*1024)/(1024*1024); +} + +// Network support code + +extern int psp_net_error; + +char *getconfname(int confnum) { + static char confname[128]; + + //if (sceUtilityCheckNetParam(confnum) != 0) + return 0; + + /*sceUtilityGetNetParam(confnum, PSP_NETPARAM_NAME, (netData *)confname); + return confname;*/ +} + +// Hardfile support code + +void psp_create_hardfile(void *arg) +{ + int i; + char filename[512]; + char textbuf[512]; + + int filesize = psp_file_size ? psp_file_size * 200 : 100; + + psp_hardfile = RequestString("hardfile0.hfv"); + if (!psp_hardfile) + return; // abort creation + + strcpy(filename, HOME_DIR); + strcat(filename, "hardfiles/"); + strcat(filename, psp_hardfile); + sprintf(textbuf, "Making %d MB hardfile:\n\n%s", filesize, filename); + + gui_Print_Left(textbuf, 0xFFCCCCCC); + + int fd = sceIoOpen(filename, SCE_O_CREAT | SCE_O_TRUNC | SCE_O_WRONLY, 0777); + + if (fd <= 0) + { + sceKernelDelayThread(4*1000*1000); + gui_Print_Left("Could not create hardfile!", 0xFFED4337); + sceKernelDelayThread(4*1000*1000); + return; + } + + void *buffer = malloc(1024*1024); + memset(buffer, 0, 1024*1024); + + for (i=0; i 7) + psp_screen_rate = 0; + + psp_sound_enable = PrefsFindBool("nosound") ? 0 : 1; + + psp_ram_size = PrefsFindInt32("ramsize") / (1024* 1024); + if (psp_ram_size <= 2 || psp_ram_size > mem_ram_range[1]) + psp_ram_size = 8; + + switch (PrefsFindInt32("modelid")) + { + case 5: + psp_model_id = 0; + break; + case 14: + psp_model_id = 1; + break; + } + + psp_mac_cpu = (PrefsFindInt32("cpu") - 2) * 2; + if (psp_mac_cpu < 0) + psp_mac_cpu = 4; + if (PrefsFindBool("fpu")) + psp_mac_cpu +=1; + if (psp_mac_cpu > 4) + psp_mac_cpu = 4; + + temp = PrefsFindString("rom"); + if (temp) + psp_rom_file = strdup(temp); + + // do serial here eventually + + psp_udp_enable = PrefsFindBool("udptunnel") ? 1 : 0; + + psp_udp_port = PrefsFindInt32("udpport"); + if (psp_udp_port <= 5000 || psp_udp_port > 65535) + psp_udp_port = 6066; + + psp_net_accesspoint = PrefsFindInt32("udpapoint"); + + psp_boot_select = PrefsFindInt32("bootdriver"); + + temp = PrefsFindString("disk", 0); + if (temp) + psp_hardfile0 = strdup(temp); + + temp = PrefsFindString("disk", 1); + if (temp) + psp_hardfile1 = strdup(temp); + + temp = PrefsFindString("disk", 2); + if (temp) + psp_hardfile2 = strdup(temp); + + temp = PrefsFindString("disk", 3); + if (temp) + psp_hardfile3 = strdup(temp); + + temp = PrefsFindString("cdrom"); + if (temp) + if (strncmp(temp, "placeholder", 11)) + psp_cdromfile = strdup(temp); + + temp = PrefsFindString("floppy"); + if (temp) + if (strncmp(temp, "placeholder", 11)) + psp_floppyfile = strdup(temp); + + if (PrefsFindString("extfs")) + psp_extfs_enable = 0; + + psp_cpu_speed = PrefsFindInt32("pspspeed"); + + psp_lcd_aspect = PrefsFindInt32("pspdar"); + + if (PrefsFindBool("relaxed60hz")) + psp_60hz_timing = PrefsFindBool("relaxed60hz") ? 1 : 0; + + // YEAH!! Do that GUI!! + do_gui(TopLevel, NULL, Get_String(STR_PREFS_ITEM_START)); + + // set prefs from final values + + char scrnmodes[6][4][12] = { + { "512/384/4", "512/384/8", "512/384/15", "512/384/24" }, + { "640/360/4", "640/360/8", "640/360/15", "640/360/24" }, + { "640/480/4", "640/480/8", "640/480/15", "640/480/24" }, + { "726/544/4", "726/544/8", "726/544/15", "726/544/24" }, + { "768/432/4", "768/432/8", "768/432/15", "768/432/24" }, + { "768/576/4", "768/576/8", "768/576/15", "768/576/24" } + }; + PrefsReplaceString("screen", scrnmodes[psp_screen_mode][psp_screen_depth]); + + PrefsReplaceInt32("frameskip", psp_screen_rate + 1); + + PrefsReplaceBool("nosound", psp_sound_enable ? false : true); + + PrefsReplaceInt32("ramsize", psp_ram_size * 1024 * 1024); + + PrefsReplaceInt32("modelid", psp_model_id ? 14 : 5); + + PrefsReplaceInt32("cpu", psp_mac_cpu / 2 + 2); + + PrefsReplaceBool("fpu", psp_mac_cpu == 1 || psp_mac_cpu >= 3); + + if (psp_rom_file) + PrefsReplaceString("rom", psp_rom_file); + else + PrefsRemoveItem("rom"); + + // put serial stuff here eventually + + PrefsReplaceBool("udptunnel", psp_udp_enable == 1); + + PrefsReplaceInt32("udpport", psp_udp_port); + + PrefsReplaceInt32("udpapoint", psp_net_accesspoint); + + PrefsReplaceInt32("bootdriver", psp_boot_select); + + PrefsRemoveItem("disk"); + PrefsRemoveItem("disk"); + PrefsRemoveItem("disk"); + PrefsRemoveItem("disk"); + if (psp_hardfile0) + PrefsAddString("disk", psp_hardfile0); + if (psp_hardfile1) + PrefsAddString("disk", psp_hardfile1); + if (psp_hardfile2) + PrefsAddString("disk", psp_hardfile2); + if (psp_hardfile3) + PrefsAddString("disk", psp_hardfile3); + + if (psp_cdromfile) + PrefsReplaceString("cdrom", psp_cdromfile); + else + PrefsReplaceString("cdrom", "placeholder.bin"); + psp_cdrom_inserted = psp_cdromfile; + + if (psp_floppyfile) + PrefsReplaceString("floppy", psp_floppyfile); + else + PrefsReplaceString("floppy", "placeholder.dsk"); + psp_floppy_inserted = psp_floppyfile; + + PrefsRemoveItem("extfs"); + if (psp_extfs_enable) + PrefsReplaceString("extfs", "files/"); + + PrefsReplaceInt32("pspspeed", psp_cpu_speed); + + PrefsReplaceInt32("pspdar", psp_lcd_aspect); + + PrefsReplaceBool("relaxed60hz", psp_60hz_timing ? true : false); + + SavePrefs(); + + return true; +} diff --git a/src/PSP2/prefs_psp.cpp b/src/PSP2/prefs_psp.cpp new file mode 100644 index 0000000..a4d9aad --- /dev/null +++ b/src/PSP2/prefs_psp.cpp @@ -0,0 +1,90 @@ +/* + * prefs_psp.cpp - Preferences handling, PSP specific stuff + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include + +#include "sysdeps.h" +#include "prefs.h" +#include "main.h" + + +// Platform-specific preferences items +prefs_desc platform_prefs_items[] = { + {"keycodefile", TYPE_STRING, false, "path of keycode translation file"}, + {"udpapoint", TYPE_INT32, false, "UDP tunnel access point"}, + {"pspspeed", TYPE_INT32, false, "PSP CPU frequency"}, + {"psptv", TYPE_BOOLEAN, false, "Use video output"}, + {"pspmar", TYPE_INT32, false, "PSP TV monitor aspect ratio"}, + {"psplaced", TYPE_BOOLEAN, false, "PSP TV monitor uses interlace"}, + {"pspdar", TYPE_INT32, false, "PSP display aspect ratio"}, + {"psposcan", TYPE_BOOLEAN, false, "PSP video overscan enable"}, + {"relaxed60hz", TYPE_BOOLEAN, false, "Use relaxed timing for 60 Hz IRQ"}, + {NULL, TYPE_END, false, NULL} // End of list +}; + + +// Preferences file name and path +const char PREFS_FILE_NAME[] = HOME_DIR "BasiliskII_prefs"; + + +/* + * Load preferences from settings file + */ + +void LoadPrefs(void) +{ + // Read preferences from settings file + FILE *f = fopen(PREFS_FILE_NAME, "r"); + if (f != NULL) { + // Prefs file found, load settings + LoadPrefsFromStream(f); + fclose(f); + } else { + // No prefs file, save defaults + SavePrefs(); + } +} + + +/* + * Save preferences to settings file + */ + +void SavePrefs(void) +{ + FILE *f; + if ((f = fopen(PREFS_FILE_NAME, "w")) != NULL) { + SavePrefsToStream(f); + fclose(f); + } +} + + +/* + * Add defaults of platform-specific prefs items + * You may also override the defaults set in PrefsInit() + */ + +void AddPlatformPrefsDefaults(void) +{ + PrefsReplaceString("extfs", "ms0:"); +} diff --git a/src/PSP2/reqfile.cpp b/src/PSP2/reqfile.cpp new file mode 100644 index 0000000..ee2ad25 --- /dev/null +++ b/src/PSP2/reqfile.cpp @@ -0,0 +1,319 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +#include +#include "sysdeps.h" + +#define MAXFILES 256 +#define PAGESIZE 13 + +struct fileentries { + char filename[FILENAME_MAX]; + char path[FILENAME_MAX]; + int flags; +}; + +static struct fileentries thefiles[MAXFILES]; + +static int maxfiles; + + +/**************************************************************************** + * get_buttons + * + ****************************************************************************/ + +static unsigned int get_buttons() +{ + SceCtrlData pad; + + sceCtrlPeekBufferPositive(0, &pad, 1); + return pad.buttons; +} + +/**************************************************************************** + * ParseDirectory + * + * Parse the directory, returning the number of files found + ****************************************************************************/ + +int parse_dir (char *path, struct fileentries *the_files, int maxentries) +{ + int dfd; + int test_dir; + SceIoDirent dirent; + char file_name[FILENAME_MAX]; + FILE *file; + int i; + int maxfiles = 0; + + /* open directory */ + if ( ( dfd = sceIoDopen( path ) ) < 0 ) + return 0; + + while (sceIoDread(dfd, &dirent) > 0 ) + { + if ( dirent.d_name[0] == '.' ) continue; + sprintf( file_name, "%s/%s", path, dirent.d_name ); + /* check directory */ + if ( SCE_S_ISDIR( dirent.d_stat.st_mode ) ) + { + if ( ( test_dir = sceIoDopen( file_name ) ) < 0 ) continue; + sceIoDclose( test_dir ); + memset (&the_files[maxfiles], 0, sizeof (struct fileentries)); + strncpy(the_files[maxfiles].path, path, FILENAME_MAX); + the_files[maxfiles].path[FILENAME_MAX-1] = 0; + strncpy(the_files[maxfiles].filename, dirent.d_name, FILENAME_MAX); + the_files[maxfiles].filename[FILENAME_MAX-1] = 0; + the_files[maxfiles].flags = 1; + maxfiles++; + } + else + { + /* test it */ + if ( ( file = fopen( file_name, "r" ) ) == 0 ) continue; + fclose( file ); + memset (&the_files[maxfiles], 0, sizeof (struct fileentries)); + strncpy(the_files[maxfiles].path, path, FILENAME_MAX); + the_files[maxfiles].path[FILENAME_MAX-1] = 0; + strncpy(the_files[maxfiles].filename, dirent.d_name, FILENAME_MAX); + the_files[maxfiles].filename[FILENAME_MAX-1] = 0; + maxfiles++; + } + + if (maxfiles == maxentries) + break; + } + /* close dir */ + sceIoDclose( dfd ); + + // sort them! + for (i=0; i 0) || + (!the_files[i].flags && !the_files[i+1].flags && strcasecmp(the_files[i].filename, the_files[i+1].filename) > 0)) + { + strcpy(tempfilename, the_files[i].filename); + strcpy(temppath, the_files[i].path); + tempflags = the_files[i].flags; + strcpy(the_files[i].filename, the_files[i+1].filename); + strcpy(the_files[i].path, the_files[i+1].path); + the_files[i].flags = the_files[i+1].flags; + strcpy(the_files[i+1].filename, tempfilename); + strcpy(the_files[i+1].path, temppath); + the_files[i+1].flags = tempflags; + i = -1; + } + } + + return maxfiles; +} + +/**************************************************************************** + * ShowFiles + * + * Support function for FileSelector + ****************************************************************************/ + +extern void gui_PrePrint(void); +extern void gui_PostPrint(void); +extern int gui_PrintWidth(char *text); +extern void gui_Print(char *text, uint32 fc, uint32 bc, int x, int y); +extern int FONT_SIZE; + +void ShowFiles( int offset, int selection ) +{ + int i,j; + char text[80]; + + gui_PrePrint(); + + j = 0; + for ( i = offset; i < ( offset + PAGESIZE ) && i < maxfiles ; i++ ) + { + if ( thefiles[i].flags ) + { + strcpy(text,"["); + strncat(text, thefiles[i].filename,66); + strcat(text,"]"); + } + else + strncpy(text, thefiles[i].filename, 68); + text[68]=0; + + gui_Print(text, j == (selection-offset) ? 0xFFFFFFFF : 0xFFAAAAAA, 0xFF000000, 480 - gui_PrintWidth(text)/2, (i - offset + 1)*FONT_SIZE*1.5); + + j++; + } + + gui_PostPrint(); +} + +/**************************************************************************** + * FileSelector + * + * Press X to select, O to cancel, and Triangle to go back a level + ****************************************************************************/ + +int FileSelector() +{ + int offset = 0; + int selection = 0; + int havefile = 0; + int redraw = 1; + unsigned int p = get_buttons(); + + while ( havefile == 0 && !(p & SCE_CTRL_CIRCLE) ) + { + if ( redraw ) + ShowFiles( offset, selection ); + redraw = 0; + + while (!(p = get_buttons())) + sceKernelDelayThread(10000); + while (p == get_buttons()) + sceKernelDelayThread(10000); + + if ( p & SCE_CTRL_DOWN ) + { + selection++; + if ( selection == maxfiles ) + selection = offset = 0; // wrap around to top + + if ( ( selection - offset ) == PAGESIZE ) + offset += PAGESIZE; // next "page" of entries + + redraw = 1; + } + + if ( p & SCE_CTRL_UP ) + { + selection--; + if ( selection < 0 ) + { + selection = maxfiles - 1; + offset = maxfiles > PAGESIZE ? selection - PAGESIZE + 1 : 0; // wrap around to bottom + } + + if ( selection < offset ) + { + offset -= PAGESIZE; // previous "page" of entries + if ( offset < 0 ) + offset = 0; + } + + redraw = 1; + } + + if ( p & SCE_CTRL_RIGHT ) + { + selection += PAGESIZE; + if ( selection >= maxfiles ) + selection = offset = 0; // wrap around to top + + if ( ( selection - offset ) >= PAGESIZE ) + offset += PAGESIZE; // next "page" of entries + + redraw = 1; + } + + if ( p & SCE_CTRL_LEFT ) + { + selection -= PAGESIZE; + if ( selection < 0 ) + { + selection = maxfiles - 1; + offset = maxfiles > PAGESIZE ? selection - PAGESIZE + 1 : 0; // wrap around to bottom + } + + if ( selection < offset ) + { + offset -= PAGESIZE; // previous "page" of entries + if ( offset < 0 ) + offset = 0; + } + + redraw = 1; + } + + if ( p & SCE_CTRL_CROSS ) + { + if ( thefiles[selection].flags ) /*** This is directory ***/ + { + char fname[FILENAME_MAX+FILENAME_MAX]; + + strncpy(fname, thefiles[selection].path, FILENAME_MAX); + fname[FILENAME_MAX-1] = 0; + strncat(fname, thefiles[selection].filename, FILENAME_MAX); + fname[FILENAME_MAX+FILENAME_MAX-2] = 0; + strcat(fname, "/"); + offset = selection = 0; + maxfiles = parse_dir(fname, thefiles, MAXFILES); + } + else + return selection; + + redraw = 1; + } + + if ( p & SCE_CTRL_TRIANGLE ) + { + char fname[FILENAME_MAX]; + int pathpos = strlen(thefiles[1].path) - 2; + + while (pathpos > 5) + { + if (thefiles[1].path[pathpos] == '/') break; + pathpos--; + } + if (pathpos < 5) pathpos = 5; /** handle root case */ + strncpy(fname, thefiles[1].path, pathpos+1); + fname[pathpos+1] = 0; + offset = selection = 0; + maxfiles = parse_dir(fname, thefiles, MAXFILES); + + redraw = 1; + } + } + + return -1; // no file selected +} + +/**************************************************************************** + * RequestFile + * + * return pointer to filename selected + ****************************************************************************/ + +char *RequestFile (char *initialPath) +{ + int selection; + static char fname[FILENAME_MAX+FILENAME_MAX]; + + maxfiles = parse_dir(initialPath, thefiles, MAXFILES); + if (!maxfiles) + return 0; + + selection = FileSelector (); + if (selection < 0) + return 0; + + strncpy (fname, thefiles[selection].path, FILENAME_MAX); + fname[FILENAME_MAX-1] = 0; + strncat (fname, thefiles[selection].filename, FILENAME_MAX); + fname[FILENAME_MAX+FILENAME_MAX-1] = 0; + + return fname; +} diff --git a/src/PSP2/sce_sys/icon0.png b/src/PSP2/sce_sys/icon0.png new file mode 100644 index 0000000..28dcb34 Binary files /dev/null and b/src/PSP2/sce_sys/icon0.png differ diff --git a/src/PSP2/sce_sys/livearea/contents/template.xml b/src/PSP2/sce_sys/livearea/contents/template.xml new file mode 100644 index 0000000..eac9739 --- /dev/null +++ b/src/PSP2/sce_sys/livearea/contents/template.xml @@ -0,0 +1,12 @@ + + + + + + + + BasiliskII + + + + \ No newline at end of file diff --git a/src/PSP2/scsi_psp.cpp b/src/PSP2/scsi_psp.cpp new file mode 100644 index 0000000..0f371ed --- /dev/null +++ b/src/PSP2/scsi_psp.cpp @@ -0,0 +1,86 @@ +/* + * scsi_psp.cpp - SCSI Manager, PSP implementation + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "sysdeps.h" +#include "scsi.h" + +#define DEBUG 0 +#include "debug.h" + + +/* + * Initialization + */ + +void SCSIInit(void) +{ + // Reset SCSI bus + SCSIReset(); +} + + +/* + * Deinitialization + */ + +void SCSIExit(void) +{ +} + + +/* + * Set SCSI command to be sent by scsi_send_cmd() + */ + +void scsi_set_cmd(int cmd_length, uint8 *cmd) +{ +} + + +/* + * Check for presence of SCSI target + */ + +bool scsi_is_target_present(int id) +{ + return false; +} + + +/* + * Set SCSI target (returns false on error) + */ + +bool scsi_set_target(int id, int lun) +{ + return false; +} + + +/* + * Send SCSI command to active target (scsi_set_command() must have been called), + * read/write data according to S/G table (returns false on error) + */ + +bool scsi_send_cmd(size_t data_length, bool reading, int sg_size, uint8 **sg_ptr, uint32 *sg_len, uint16 *stat, uint32 timeout) +{ + return false; +} + diff --git a/src/PSP2/serial_psp.cpp b/src/PSP2/serial_psp.cpp new file mode 100644 index 0000000..eff4a65 --- /dev/null +++ b/src/PSP2/serial_psp.cpp @@ -0,0 +1,137 @@ +/* + * serial_psp.cpp - Serial device driver, PSP implementation + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "sysdeps.h" +#include "cpu_emulation.h" +#include "main.h" +#include "macos_util.h" +#include "prefs.h" +#include "serial.h" +#include "serial_defs.h" + +#define DEBUG 0 +#include "debug.h" + + +// Driver private variables +class DSERDPort : public SERDPort { +public: + DSERDPort(const char *dev) + { + device_name = (char *)dev; + } + + virtual ~DSERDPort() + { + } + + virtual int16 open(uint16 config); + virtual int16 prime_in(uint32 pb, uint32 dce); + virtual int16 prime_out(uint32 pb, uint32 dce); + virtual int16 control(uint32 pb, uint32 dce, uint16 code); + virtual int16 status(uint32 pb, uint32 dce, uint16 code); + virtual int16 close(void); + +private: + char *device_name; // Device name +}; + + +/* + * Initialization + */ + +void SerialInit(void) +{ + // Read serial preferences and create structs for both ports + the_serd_port[0] = new DSERDPort(PrefsFindString("seriala")); + the_serd_port[1] = new DSERDPort(PrefsFindString("serialb")); +} + + +/* + * Deinitialization + */ + +void SerialExit(void) +{ + delete (DSERDPort *)the_serd_port[0]; + delete (DSERDPort *)the_serd_port[1]; +} + + +/* + * Open serial port + */ + +int16 DSERDPort::open(uint16 config) +{ + return openErr; +} + + +/* + * Read data from port + */ + +int16 DSERDPort::prime_in(uint32 pb, uint32 dce) +{ + return readErr; +} + + +/* + * Write data to port + */ + +int16 DSERDPort::prime_out(uint32 pb, uint32 dce) +{ + return writErr; +} + + +/* + * Control calls + */ + +int16 DSERDPort::control(uint32 pb, uint32 dce, uint16 code) +{ + return controlErr; +} + + +/* + * Status calls + */ + +int16 DSERDPort::status(uint32 pb, uint32 dce, uint16 code) +{ + return statusErr; +} + + +/* + * Close serial port + */ + +int16 DSERDPort::close() +{ + return noErr; +} diff --git a/src/PSP2/sys_psp.cpp b/src/PSP2/sys_psp.cpp new file mode 100644 index 0000000..1840aef --- /dev/null +++ b/src/PSP2/sys_psp.cpp @@ -0,0 +1,642 @@ +/* + * sys_unix.cpp - System dependent routines, Unix implementation + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "sysdeps.h" + +#include +#include + +#include +#include +#include +#include + +#include "main.h" +#include "macos_util.h" +#include "prefs.h" +#include "user_strings.h" +#include "sys.h" + +#define DEBUG 0 +#include "debug.h" + + +// File handles are pointers to these structures +struct file_handle { + char *name; // Copy of device/file name + int fd; + bool is_file; // Flag: plain file or /dev/something? + bool is_floppy; // Flag: floppy device + bool is_cdrom; // Flag: CD-ROM device + bool read_only; // Copy of Sys_open() flag + loff_t start_byte; // Size of file header (if any) + loff_t file_size; // Size of file data (only valid if is_file is true) + int toc_fd; // filedesc for cdrom TOC file + char *toc_name; // copy of filename for CD TOC + file_handle *next; // next handle in list +}; + +char *psp_floppy_inserted = NULL; // String: filename of floppy inserted +char *psp_cdrom_inserted = NULL; // String: filename of cdrom inserted +bool psp_cdrom_locked = false; // Flag: cdrom lock + +file_handle *floppy_fh = NULL; +file_handle *cdrom_fh = NULL; + +file_handle *fh_list = NULL; // singly-linked list of all handles + + +/* + * Initialization + */ + +void SysInit(void) +{ +} + + +/* + * Deinitialization + */ + +void SysExit(void) +{ +} + + +/* + * This gets called when no "floppy" prefs items are found + * It scans for available floppy drives and adds appropriate prefs items + */ + +void SysAddFloppyPrefs(void) +{ +} + + +/* + * This gets called when no "disk" prefs items are found + * It scans for available HFS volumes and adds appropriate prefs items + * On OS X, we could do the same, but on an OS X machine I think it is + * very unlikely that any mounted volumes would contain a system which + * is old enough to boot a 68k Mac, so we just do nothing here for now. + */ + +void SysAddDiskPrefs(void) +{ +} + + +/* + * This gets called when no "cdrom" prefs items are found + * It scans for available CD-ROM drives and adds appropriate prefs items + */ + +void SysAddCDROMPrefs(void) +{ + // Don't scan for drives if nocdrom option given + if (PrefsFindBool("nocdrom")) + return; +} + + +/* + * Add default serial prefs (must be added, even if no ports present) + */ + +void SysAddSerialPrefs(void) +{ +} + + +/* + * Open file/device, create new file handle (returns NULL on error) + */ + +void *Sys_open(const char *name, bool read_only) +{ + bool is_file = false; + + // determine if hardfile - is_file will be set only if extension is "hfv" or if no extension + char *tmp = strrchr(name, '.'); + if (tmp) + is_file = !strncmp(tmp, ".hfv", 4); + else + is_file = true; + + D(bug("Sys_open(%s, %s)\n", name, read_only ? "read-only" : "read/write")); + + // check for cdrom/floppy placeholder + if (!strncmp(name, "placeholder", 11)) + { + file_handle *fh = new file_handle; + fh->next = fh_list; + fh_list = fh; + fh->name = strdup(name); + fh->fd = -1; + fh->toc_fd = -1; + fh->is_file = false; + fh->read_only = read_only; + fh->start_byte = 0; + fh->is_floppy = !strncmp(tmp, ".dsk", 4); + fh->is_cdrom = !fh->is_floppy; + if (fh->is_floppy) + floppy_fh = fh; + else + cdrom_fh = fh; + return fh; + } + + // Check if write access is allowed, set read-only flag if not + /*if (!read_only && access(name, W_OK)) + { + read_only = true; + }*/ + + // Open file/device + int fd = open(name, read_only ? O_RDONLY : O_RDWR); + + if (fd < 0 && !read_only) { + // Read-write failed, try read-only + read_only = true; + fd = open(name, O_RDONLY); + } + + if (fd >= 0) { + file_handle *fh = new file_handle; + fh->next = fh_list; + fh_list = fh; + fh->name = strdup(name); + fh->fd = fd; + fh->toc_fd = -1; + fh->is_file = is_file; + fh->read_only = read_only; + fh->start_byte = 0; + fh->is_floppy = false; + fh->is_cdrom = false; + if (fh->is_file) { + // Detect disk image file layout + loff_t size = 0; + size = lseek(fd, 0, SEEK_END); + uint8 data[256]; + lseek(fd, 0, SEEK_SET); + read(fd, data, 256); + FileDiskLayout(size, data, fh->start_byte, fh->file_size); + } else { + // determine if floppy or cdrom - is floppy only if extension is "dsk", otherwise is assumed to be a cdrom + char *tmp = strrchr(name, '.'); + if (tmp) + { + fh->is_floppy = !strncmp(tmp, ".dsk", 4); + fh->is_cdrom = !fh->is_floppy; + // Detect disk image file layout + loff_t size = 0; + size = lseek(fd, 0, SEEK_END); + uint8 data[256]; + lseek(fd, 0, SEEK_SET); + read(fd, data, 256); + FileDiskLayout(size, data, fh->start_byte, fh->file_size); + } + } + if (fh->is_floppy) + floppy_fh = fh; + else if (fh->is_cdrom) + cdrom_fh = fh; + return fh; + } else { + printf("WARNING: Cannot open %s (%s)\n", name, strerror(errno)); + return NULL; + } +} + + +/* + * Close file/device, delete file handle + */ + +void Sys_close(void *arg) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return; + + if (fh->fd >= 0) + close(fh->fd); + + if (fh->name) + free(fh->name); + + delete fh; +} + + +/* + * Read "length" bytes from file/device, starting at "offset", to "buffer", + * returns number of bytes read (or 0) + */ + +size_t Sys_read(void *arg, void *buffer, loff_t offset, size_t length) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return 0; + if (fh->fd < 0) + return 0; + + // Seek to position + if (lseek(fh->fd, offset + fh->start_byte, SEEK_SET) < 0) + return 0; + + // Read data + return read(fh->fd, buffer, length); +} + + +/* + * Write "length" bytes from "buffer" to file/device, starting at "offset", + * returns number of bytes written (or 0) + */ + +size_t Sys_write(void *arg, void *buffer, loff_t offset, size_t length) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return 0; + if (fh->fd < 0) + return 0; + + // Seek to position + if (lseek(fh->fd, offset + fh->start_byte, SEEK_SET) < 0) + return 0; + + // Write data + return write(fh->fd, buffer, length); +} + + +/* + * Return size of file/device (minus header) + */ + +loff_t SysGetFileSize(void *arg) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return 0; + + if (fh->is_file) + return fh->file_size; + else { + if (fh->is_floppy) + return (loff_t)1440*512; // always high-density + + if (fh->fd < 0) + return (loff_t)650*1024; + + return lseek(fh->fd, 0, SEEK_END) - fh->start_byte; + } +} + + +/* + * Eject volume (if applicable) + */ + +void SysEject(void *arg) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return; + + if (fh->is_floppy) { + if (floppy_fh->fd >= 0) { + close(floppy_fh->fd); + floppy_fh->fd = -1; + } + psp_floppy_inserted = NULL; + } else if (fh->is_cdrom) { + if (cdrom_fh->fd >= 0) { + close(cdrom_fh->fd); + cdrom_fh->fd = -1; + } + psp_cdrom_inserted = NULL; + } +} + + +/* + * Format volume (if applicable) + */ + +bool SysFormat(void *arg) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return false; + if (fh->fd < 0) + return false; + + //!! + return true; +} + + +/* + * Check if file/device is read-only (this includes the read-only flag on Sys_open()) + */ + +bool SysIsReadOnly(void *arg) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return true; + + return fh->read_only; +} + + +/* + * Check if the given file handle refers to a fixed or a removable disk + */ + +bool SysIsFixedDisk(void *arg) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return true; + + if (fh->is_file) + return true; + else if (fh->is_floppy || fh->is_cdrom) + return false; + else + return true; +} + + +/* + * Check if a disk is inserted in the drive (always true for files) + */ + +bool SysIsDiskInserted(void *arg) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return false; + + if (fh->is_file) { + return true; + + } else if (fh->is_floppy) { + //return psp_floppy_inserted != NULL; + return fh->fd >= 0; + + } else if (fh->is_cdrom) { + //return psp_cdrom_inserted != NULL; + return fh->fd >= 0; + + } else + return true; +} + + +/* + * Prevent medium removal (if applicable) + */ + +void SysPreventRemoval(void *arg) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return; + + if (fh->is_cdrom) + psp_cdrom_locked = true; +} + + +/* + * Allow medium removal (if applicable) + */ + +void SysAllowRemoval(void *arg) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return; + + if (fh->is_cdrom) + psp_cdrom_locked = false; +} + + +/* + * Read CD-ROM TOC (binary MSF format, 804 bytes max.) + */ + +bool SysCDReadTOC(void *arg, uint8 *toc) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return false; + if (fh->fd < 0) + return false; + + if (fh->is_cdrom) { + // need to add TOC handling! + return false; + } else + return false; +} + + +/* + * Read CD-ROM position data (Sub-Q Channel, 16 bytes, see SCSI standard) + */ + +bool SysCDGetPosition(void *arg, uint8 *pos) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return false; + if (fh->fd < 0) + return false; + + if (fh->is_cdrom) { + return false; + } else + return false; +} + + +/* + * Play CD audio + */ + +bool SysCDPlay(void *arg, uint8 start_m, uint8 start_s, uint8 start_f, uint8 end_m, uint8 end_s, uint8 end_f) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return false; + if (fh->fd < 0) + return false; + + if (fh->is_cdrom) { + return false; + } else + return false; +} + + +/* + * Pause CD audio + */ + +bool SysCDPause(void *arg) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return false; + if (fh->fd < 0) + return false; + + if (fh->is_cdrom) { + return false; + } else + return false; +} + + +/* + * Resume paused CD audio + */ + +bool SysCDResume(void *arg) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return false; + if (fh->fd < 0) + return false; + + if (fh->is_cdrom) { + return false; + } else + return false; +} + + +/* + * Stop CD audio + */ + +bool SysCDStop(void *arg, uint8 lead_out_m, uint8 lead_out_s, uint8 lead_out_f) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return false; + if (fh->fd < 0) + return false; + + if (fh->is_cdrom) { + return false; + } else + return false; +} + + +/* + * Perform CD audio fast-forward/fast-reverse operation starting from specified address + */ + +bool SysCDScan(void *arg, uint8 start_m, uint8 start_s, uint8 start_f, bool reverse) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return false; + if (fh->fd < 0) + return false; + + // Not supported + return false; +} + + +/* + * Set CD audio volume (0..255 each channel) + */ + +void SysCDSetVolume(void *arg, uint8 left, uint8 right) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return; + + if (fh->is_cdrom) { + //! + } +} + + +/* + * Get CD audio volume (0..255 each channel) + */ + +void SysCDGetVolume(void *arg, uint8 &left, uint8 &right) +{ + file_handle *fh = (file_handle *)arg; + if (!fh) + return; + + left = right = 0; + if (fh->is_cdrom) { + //! + } +} + +/* + * Suspend / Resume functions + */ + +void Sys_drive_stop(void) +{ + file_handle *fh = fh_list; + while (fh) + { + if (fh->fd >= 0) + close(fh->fd); // is open - close + if (fh->toc_fd >= 0) + close(fh->toc_fd); + fh = fh->next; + } +} + +void Sys_drive_restart(void) +{ + file_handle *fh = fh_list; + while (fh) + { + if (fh->fd >= 0) + fh->fd = open(fh->name, fh->read_only ? O_RDONLY : O_RDWR); // was open previously - reopen + if (fh->toc_fd >= 0) + fh->toc_fd = open(fh->toc_name, O_RDONLY); // was open previously - reopen + fh = fh->next; + } +} diff --git a/src/PSP2/sysdeps.h b/src/PSP2/sysdeps.h new file mode 100644 index 0000000..7db02fb --- /dev/null +++ b/src/PSP2/sysdeps.h @@ -0,0 +1,175 @@ +/* + * sysdeps.h - System dependent definitions for PSP + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef SYSDEPS_H +#define SYSDEPS_H + +//#include "config.h" +#include "user_strings_psp.h" +#include + +# include +# include + +#include +#include +#include +#include +#include +#include +#include + +#define lerp(value, from_max, to_max) ((((value*10) * (to_max*10))/(from_max*10))/10) + +#define HOME_DIR "ux0:data/BasiliskII/" + +/* Mac and host address space are distinct */ +#define REAL_ADDRESSING 0 + +/* Set endian and addressing definitions */ +#undef WORDS_BIGENDIAN +#define DIRECT_ADDRESSING 1 + +/* Using 68k emulator */ +#define EMULATED_68K 1 + +/* The m68k emulator uses a prefetch buffer ? */ +#define USE_PREFETCH_BUFFER 0 + +/* Mac ROM is write protected when banked memory is used */ +#if REAL_ADDRESSING || DIRECT_ADDRESSING +# define ROM_IS_WRITE_PROTECTED 0 +# define USE_SCRATCHMEM_SUBTERFUGE 1 +#else +# define ROM_IS_WRITE_PROTECTED 1 +#endif + +/* ExtFS is supported */ +#define SUPPORTS_EXTFS 0 + +/* BSD socket API supported */ +#define SUPPORTS_UDP_TUNNEL 0 + +//#define SUPPORTS_VBL_IRQ 1 + +/* Data types */ +typedef unsigned char uint8; +typedef signed char int8; +typedef unsigned short uint16; +typedef short int16; +typedef unsigned int uint32; +typedef int int32; +typedef unsigned long long uint64; +typedef long long int64; +#define VAL64(a) (a ## LL) +#define UVAL64(a) (a ## uLL) +typedef uint32 uintptr; +typedef int32 intptr; + +typedef off_t loff_t; +typedef char * caddr_t; + +//typedef struct timeval tm_time_t; +typedef uint64 tm_time_t; + +/* Define codes for all the float formats that we know of. + * Though we only handle IEEE format. */ +#define UNKNOWN_FLOAT_FORMAT 0 +#define IEEE_FLOAT_FORMAT 1 +#define VAX_FLOAT_FORMAT 2 +#define IBM_FLOAT_FORMAT 3 +#define C4X_FLOAT_FORMAT 4 + +/* UAE CPU data types */ +#define uae_s8 int8 +#define uae_u8 uint8 +#define uae_s16 int16 +#define uae_u16 uint16 +#define uae_s32 int32 +#define uae_u32 uint32 +#define uae_s64 int64 +#define uae_u64 uint64 +typedef uae_u32 uaecptr; + +/* Timing functions */ +extern uint64 GetTicks_usec(void); +extern void Delay_usec(uint32 usec); + +extern long instructionCount; +extern void m68k_disasm_current_pc (void); + +/* UAE CPU defines */ + +/* little-endian CPUs which can not do unaligned accesses (this needs optimization) */ +static inline uae_u32 do_get_mem_long(uae_u32 *a) {uint8 *b = (uint8 *)a; return (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3];} +static inline uae_u32 do_get_mem_word(uae_u16 *a) {uint8 *b = (uint8 *)a; return (b[0] << 8) | b[1];} +static inline void do_put_mem_long(uae_u32 *a, uae_u32 v) { /*m68k_disasm_current_pc(); sceKernelDelayThread(30*1000*1000); }*/ /*psvDebugScreenPrintf("Putting 0x%04X at 0x%04X", v, a);*/ uint8 *b = (uint8 *)a; b[0] = v >> 24; b[1] = v >> 16; b[2] = v >> 8; b[3] = v;} +static inline void do_put_mem_word(uae_u16 *a, uae_u32 v) {uint8 *b = (uint8 *)a; b[0] = v >> 8; b[1] = v;} + +// these don't seem to be used +static inline uae_u32 do_byteswap_32(uae_u32 v) + { return (((v >> 24) & 0xff) | ((v >> 8) & 0xff00) | ((v & 0xff) << 24) | ((v & 0xff00) << 8)); } +static inline uae_u32 do_byteswap_16(uae_u32 v) + { return (((v >> 8) & 0xff) | ((v & 0xff) << 8)); } + + +/* PSP optimized CPU defines */ +//TODO: fix this:static inline uae_u32 do_get_mem_long(uae_u32 *a) {uint32 retval; __asm__ ("ulw %0,%1" : "=r" (retval) : "m" (*a)); return __builtin_allegrex_wsbw(retval);} +//TODO: fix this:static inline void do_put_mem_long(uae_u32 *a, uae_u32 v) {__asm__ ("usw %1,%0" : "=m" (*a) : "r" (__builtin_allegrex_wsbw(v)));} + +// doesn't seem to be used +#define HAVE_OPTIMIZED_BYTESWAP_32 +//TODO: fix this:static inline uae_u32 do_byteswap_32(uae_u32 v) {return __builtin_allegrex_wsbw(v);} + +//#define HAVE_GET_WORD_UNSWAPPED +//#define do_get_mem_word_unswapped(a) ((uae_u32)*((uae_u16 *)(a))) + +#define do_get_mem_byte(a) ((uae_u32)*((uae_u8 *)(a))) +#define do_put_mem_byte(a, v) (*(uae_u8 *)(a) = (v)) + +#define call_mem_get_func(func, addr) ((*func)(addr)) +#define call_mem_put_func(func, addr, v) ((*func)(addr, v)) +#define __inline__ inline +#define CPU_EMU_SIZE 0 +#undef NO_INLINE_MEMORY_ACCESS +#undef MD_HAVE_MEM_1_FUNCS +#define ENUMDECL typedef enum +#define ENUMNAME(name) name +#define write_log pspDebugScreenPrintf + +#undef X86_ASSEMBLY +#undef UNALIGNED_PROFITABLE +#undef OPTIMIZED_FLAGS +#define ASM_SYM_FOR_FUNC(a) __asm__(a) + +#ifndef REGPARAM +# define REGPARAM +#endif +#define REGPARAM2 + +//#define SIZEOF_FLOAT 4 +//#define SIZEOF_DOUBLE 8 +//#define HOST_FLOAT_FORMAT IEEE_FLOAT_FORMAT +//#define FPU_HAVE_IEEE_DOUBLE 1 + +#define HOST_FLOAT_FORMAT SOFT_FLOAT_FORMAT +#define CONFIG_SOFTFLOAT + +#endif /* SYSDEPS_H */ diff --git a/src/PSP2/timer_psp.cpp b/src/PSP2/timer_psp.cpp new file mode 100644 index 0000000..d6e8b7e --- /dev/null +++ b/src/PSP2/timer_psp.cpp @@ -0,0 +1,254 @@ +/* + * timer_psp.cpp - Time Manager emulation, PSP specific stuff + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include +#include + +#include "sysdeps.h" +#include "macos_util.h" +#include "timer.h" + +#define DEBUG 0 +#include "debug.h" + + +uint32 TicksPerMicroSecond = 0xffffffff; + + +/* + * Return microseconds since boot (64 bit) + */ + +void Microseconds(uint32 &hi, uint32 &lo) +{ + D(bug("Microseconds\n")); + +#if 1 + // Only do this once because it hurts + if (TicksPerMicroSecond == 0xffffffff) + TicksPerMicroSecond = (uint32)(sceRtcGetTickResolution() * 0.000001); + + uint64 tl; + SceRtcTick tick; + sceRtcGetCurrentTick(&tick); + tl = tick.tick / TicksPerMicroSecond; +#else + struct timeval t; + gettimeofday(&t, NULL); + uint64 tl = (uint64)t.tv_sec * 1000000 + t.tv_usec; +#endif + hi = tl >> 32; + lo = tl; +} + + +/* + * Return local date/time in Mac format (seconds since 1.1.1904) + */ + +uint32 TimerDateTime(void) +{ + time_t rawtime; + SceDateTime time; + //time(&rawtime); + + sceRtcGetCurrentClockLocalTime(&time); + sceRtcGetTime_t(&time, &rawtime); + return TimeToMacTime(rawtime); +} + + +/* + * Get current time + */ + +void timer_current_time(tm_time_t &t) +{ +#if 1 + // Only do this once because it hurts + if (TicksPerMicroSecond == 0xffffffff) + TicksPerMicroSecond = (uint32)(sceRtcGetTickResolution() * 0.000001); + + SceRtcTick tick; + sceRtcGetCurrentTick(&tick); + t = tick.tick / TicksPerMicroSecond; +#else + gettimeofday(&t, NULL); +#endif +} + + +/* + * Add times + */ + +void timer_add_time(tm_time_t &res, tm_time_t a, tm_time_t b) +{ +#if 1 + res = a + b; +#else + res.tv_sec = a.tv_sec + b.tv_sec; + res.tv_usec = a.tv_usec + b.tv_usec; + if (res.tv_usec >= 1000000) { + res.tv_sec++; + res.tv_usec -= 1000000; + } +#endif +} + + +/* + * Subtract times + */ + +void timer_sub_time(tm_time_t &res, tm_time_t a, tm_time_t b) +{ +#if 1 + res = a - b; +#else + res.tv_sec = a.tv_sec - b.tv_sec; + res.tv_usec = a.tv_usec - b.tv_usec; + if (res.tv_usec < 0) { + res.tv_sec--; + res.tv_usec += 1000000; + } +#endif +} + + +/* + * Compare times (<0: a < b, =0: a = b, >0: a > b) + */ + +int timer_cmp_time(tm_time_t a, tm_time_t b) +{ +#if 1 + return a - b; +#else + if (a.tv_sec == b.tv_sec) + return a.tv_usec - b.tv_usec; + else + return a.tv_sec - b.tv_sec; +#endif +} + + +/* + * Convert Mac time value (>0: milliseconds, <0: microseconds) to tm_time_t + */ + +void timer_mac2host_time(tm_time_t &res, int32 mactime) +{ +#if 1 + if (mactime > 0) + res = mactime * 1000; // Time in milliseconds + else + res = -mactime; // Time in negative microseconds +#else + if (mactime > 0) { + // Time in milliseconds + res.tv_sec = mactime / 1000; + res.tv_usec = (mactime % 1000) * 1000; + } else { + // Time in negative microseconds + res.tv_sec = -mactime / 1000000; + res.tv_usec = -mactime % 1000000; + } +#endif +} + + +/* + * Convert positive tm_time_t to Mac time value (>0: milliseconds, <0: microseconds) + * A negative input value for hosttime results in a zero return value + * As long as the microseconds value fits in 32 bit, it must not be converted to milliseconds! + */ + +int32 timer_host2mac_time(tm_time_t hosttime) +{ +#if 1 + if (hosttime < 0) + return 0; + else if (hosttime > 0x7fffffff) + return hosttime / 1000; // Time in milliseconds + else + return -hosttime; // Time in negative microseconds +#else + if (hosttime.tv_sec < 0) + return 0; + else { + uint64 t = (uint64)hosttime.tv_sec * 1000000 + hosttime.tv_usec; + if (t > 0x7fffffff) + return t / 1000; // Time in milliseconds + else + return -t; // Time in negative microseconds + } +#endif +} + + +/* + * Get current value of microsecond timer + */ + +uint64 GetTicks_usec(void) +{ +#if 1 + // Only do this once because it hurts + if (TicksPerMicroSecond == 0xffffffff) + TicksPerMicroSecond = (uint32)(sceRtcGetTickResolution() * 0.000001); + + SceRtcTick tick; + sceRtcGetCurrentTick(&tick); + return tick.tick / TicksPerMicroSecond; +#else + struct timeval t; + gettimeofday(&t, NULL); + return (uint64)t.tv_sec * 1000000 + t.tv_usec; +#endif +} + + +/* + * Delay by specified number of microseconds (<1 second) + */ + +void Delay_usec(uint32 usec) +{ + sceKernelDelayThread(usec); +} + + +/* + * Suspend emulator thread, virtual CPU in idle mode + */ + +void idle_wait(void) +{ + sceKernelDelayThread(10000); +} + + +/* + * Resume execution of emulator thread, events just arrived + */ + +void idle_resume(void) +{ +} diff --git a/src/PSP2/user_strings_psp.cpp b/src/PSP2/user_strings_psp.cpp new file mode 100644 index 0000000..39ae580 --- /dev/null +++ b/src/PSP2/user_strings_psp.cpp @@ -0,0 +1,100 @@ +/* + * user_strings_psp.cpp - PSP-specific localizable strings + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "sysdeps.h" +#include "user_strings.h" +#include "user_strings_psp.h" + + +// Platform-specific string definitions +user_string_def platform_strings[] = { + // Common strings that have a platform-specific variant + {STR_EXTFS_CTRL, "Vita MemStick"}, + {STR_EXTFS_NAME, "Vita MemStick Directory Tree"}, + {STR_EXTFS_VOLUME_NAME, "MS0"}, + + {STR_CREATE_VOLUME_PANEL_BUTTON, "Create Hardfile"}, + + {STR_GUI_ERROR_PREFIX, "Basilisk II error"}, + {STR_GUI_WARNING_PREFIX, "Basilisk II warning"}, + {STR_ROM_SIZE_ERR, "You can only use a 512K or 1MB Mac ROM."}, + + // Purely platform-specific strings + {STR_MENU_BACK, "Previous Menu"}, + {STR_MENU_MENU, "X = Enter Sub-Menu"}, + {STR_MENU_FUNCTION, "X = Do Function"}, + {STR_MENU_SELECT, "X = Hold to change Selection with D-Pad"}, + {STR_MENU_TOGGLE, "X = Toggle Flag"}, + {STR_MENU_INTEGER, "X = Hold to change Integer with D-Pad"}, + {STR_MENU_FILE, "X = Select File"}, + {STR_MENU_STRING, "X = Input String"}, + {STR_MENU_ON, "on"}, + {STR_MENU_OFF, "off"}, + + {STR_PSP_SERIAL, "Vita Serial"}, + {STR_PSP_IRDA, "Vita IRDA"}, + {STR_ACCESS_POINT, "Network Access Point"}, + + {STR_PSP_PANE_TITLE, "Vita Specific Settings"}, + {STR_PSP_CPU_FREQ, "Vita CPU Clock Frequency"}, + {STR_PSP_VIDEO_OUT, "Vita Video Output"}, + {STR_PSP_LCD_PANE_TITLE, "Vita LCD Settings"}, + {STR_PSP_TV_PANE_TITLE, "Vita TV Settings"}, + {STR_PSP_MONITOR_ASPECT, "Monitor Aspect Ratio"}, + {STR_PSP_MONITOR_LACED, "Monitor uses Interlace"}, + {STR_PSP_DISPLAY_ASPECT, "Display Aspect Ratio"}, + {STR_PSP_OVERSCAN, "Draw in Overscan Region"}, + {STR_PSP_RELAXED_60HZ, "Relaxed timing for 60 Hz IRQ"}, + + {STR_TICK_THREAD_ERR, "Cannot create thread for ticks."}, + {STR_NO_NET_THREAD_ERR, "Cannot create network thread."}, + {STR_NO_ACCESS_POINT_ERR, "Cannot connect to Access Point."}, + {STR_DANZEFF_ERR, "Cannot initialize Danzeff OSK."}, + + {STR_BOOT_FLOPPY_LAB, "Floppy Disk"}, + {STR_CREATE_FLOPPY_PANEL_BUTTON, "Create 1.4 MB Floppy"}, + + {-1, NULL} // End marker +}; + + +/* + * Fetch pointer to string, given the string number + */ + +const char *GetString(int num) +{ + // First search for platform-specific string + int i = 0; + while (platform_strings[i].num >= 0) { + if (platform_strings[i].num == num) + return platform_strings[i].str; + i++; + } + + // Not found, search for common string + i = 0; + while (common_strings[i].num >= 0) { + if (common_strings[i].num == num) + return common_strings[i].str; + i++; + } + return NULL; +} diff --git a/src/PSP2/user_strings_psp.h b/src/PSP2/user_strings_psp.h new file mode 100644 index 0000000..c7c8ceb --- /dev/null +++ b/src/PSP2/user_strings_psp.h @@ -0,0 +1,61 @@ +/* + * user_strings_psp.h - PSP-specific localizable strings + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef USER_STRINGS_PSP_H +#define USER_STRINGS_PSP_H + +enum { + STR_MENU_BACK = 10000, + STR_MENU_MENU, + STR_MENU_FUNCTION, + STR_MENU_SELECT, + STR_MENU_TOGGLE, + STR_MENU_INTEGER, + STR_MENU_FILE, + STR_MENU_STRING, + STR_MENU_ON, + STR_MENU_OFF, + + STR_PSP_SERIAL, + STR_PSP_IRDA, + STR_ACCESS_POINT, + + STR_PSP_PANE_TITLE, + STR_PSP_CPU_FREQ, + STR_PSP_VIDEO_OUT, + STR_PSP_LCD_PANE_TITLE, + STR_PSP_TV_PANE_TITLE, + STR_PSP_MONITOR_ASPECT, + STR_PSP_MONITOR_LACED, + STR_PSP_DISPLAY_ASPECT, + STR_PSP_OVERSCAN, + STR_PSP_RELAXED_60HZ, + + STR_TICK_THREAD_ERR, + STR_NO_NET_THREAD_ERR, + STR_NO_ACCESS_POINT_ERR, + STR_DANZEFF_ERR, + + STR_BOOT_FLOPPY_LAB, + STR_CREATE_FLOPPY_PANEL_BUTTON, + +}; + +#endif diff --git a/src/PSP2/video_psp.cpp b/src/PSP2/video_psp.cpp new file mode 100644 index 0000000..2bceb92 --- /dev/null +++ b/src/PSP2/video_psp.cpp @@ -0,0 +1,1341 @@ +/* + * video_psp.cpp - Video/graphics emulation, PSP specific stuff + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include + +#include + +#include "sysdeps.h" + +#include +#include +#include +#include + +#include "cpu_emulation.h" +#include "main.h" +#include "adb.h" +#include "macos_util.h" +#include "prefs.h" +#include "user_strings.h" +#include "video.h" +#include "video_defs.h" + +#define DEBUG 0 +#include "debug.h" + +#define KERNELMODE 0 /* 1 is untested but required for some keyboards to change baudrate */ + +// Supported video modes +using std::vector; +static vector VideoModes; + + +// Constants +const char KEYCODE_FILE_NAME[] = "BasiliskII_keycodes"; + + +// Global variables +static unsigned int __attribute__((aligned(16))) clut256[256]; +static unsigned int __attribute__((aligned(16))) clut0_15[256]; +static unsigned int __attribute__((aligned(16))) clut1_15[256]; +static unsigned int __attribute__((aligned(16))) clut2_15[256]; +static unsigned int __attribute__((aligned(16))) clut0_24[256]; +static unsigned int __attribute__((aligned(16))) clut1_24[256]; +static unsigned int __attribute__((aligned(16))) clut2_24[256]; +static unsigned int clut_15[256]; + +static uint8 __attribute__((aligned(64))) frame_buffer[768*576*4]; +vita2d_texture *screen, *screen_16; +unsigned int *screen_data; +unsigned short *screen_16_data; + +static int32 frame_skip; // Prefs items + +bool refresh_okay = false; + +static uint32 BUF_WIDTH = 0; +static uint32 SCR_WIDTH = 0; +static uint32 SCR_HEIGHT = 0; +#define PIXEL_SIZE (4) // using 8888 mode for screen +static uint32 FRAME_SIZE = 0; +static uint32 DISP_BUF = 0; + +static uint8 *the_buffer = NULL; // Mac frame buffer (where MacOS draws into) +static uint32 the_buffer_size; // Size of allocated the_buffer + +static int32 psp_screen_x = 640; +static int32 psp_screen_y = 480; +static int32 psp_screen_d = VDEPTH_8BIT; + +static int32 d_x, d_y, d_w, d_h; +double scale_x, scale_y; + +static int psp_lcd_aspect = 0; // 4:3 + +extern bool emerg_quit; // Flag: emergency quit requested + + +extern char *psp_floppy_inserted; // String: filename of floppy inserted +extern char *psp_cdrom_inserted; // String: filename of cdrom inserted +extern bool psp_cdrom_locked; // Flag: cdrom lock + +// File handles are pointers to these structures +struct file_handle { + char *name; // Copy of device/file name + int fd; + bool is_file; // Flag: plain file or /dev/something? + bool is_floppy; // Flag: floppy device + bool is_cdrom; // Flag: CD-ROM device + bool read_only; // Copy of Sys_open() flag + loff_t start_byte; // Size of file header (if any) + loff_t file_size; // Size of file data (only valid if is_file is true) + int toc_fd; // filedesc for cdrom TOC file +}; + +extern file_handle *floppy_fh; +extern file_handle *cdrom_fh; + + +static bool psp_int_enable = false; +static bool use_keycodes = false; // Flag: Use keycodes rather than keysyms +static int keycode_table[256]; // X keycode -> Mac keycode translation table + +SceHidKeyboardReport k_reports[SCE_HID_MAX_REPORT]; +SceHidMouseReport m_reports[SCE_HID_MAX_REPORT]; +static int keyboard_hid_handle = 0; +static int mouse_hid_handle = 0; + +/* + * refresh subroutines + */ + +static void refresh4(void) +{ + int i, j; + + for (j=0; j>4]; + screen_data[i*2+768*j+1] = clut256[the_buffer[i+768/2*j]&0xF]; + } + } + vita2d_draw_texture_scale(screen, d_x, d_y, scale_x, scale_y); +} + +static void refresh8(void) +{ + int i, j; + + for (j=0; j &available_modes, video_depth default_depth, uint32 default_id) : monitor_desc(available_modes, default_depth, default_id) {} + ~PSP_monitor_desc() {} + + virtual void switch_to_current_mode(void); + virtual void set_palette(uint8 *pal, int num); + virtual void set_interrupts_enable(bool enable); + + bool video_open(void); + void video_close(void); +}; + + +/* + * Utility functions + */ + +// Return bytes per row for requested vdepth +static int PSPBytesPerRow(int width, int vdepth) +{ + switch (vdepth) { + case VDEPTH_1BIT: return 768>>3; + case VDEPTH_2BIT: return 768>>2; + case VDEPTH_4BIT: return 768>>1; + case VDEPTH_8BIT: return 768; + case VDEPTH_16BIT: return 768<<1; + case VDEPTH_32BIT: return 768<<2; + } + return 768; +} + +// Add mode to list of supported modes +static void add_mode(int width, int height, int resolution_id, int bytes_per_row, video_depth vdepth) +{ + // Fill in VideoMode entry + video_mode mode; + mode.x = width; + mode.y = height; + mode.resolution_id = resolution_id; + mode.bytes_per_row = bytes_per_row; + mode.depth = vdepth; + VideoModes.push_back(mode); +} + +// Add standard list of windowed modes for given color depth +static void add_video_modes(video_depth vdepth) +{ + add_mode(512, 384, 0x80, PSPBytesPerRow(512, vdepth), vdepth); + add_mode(640, 360, 0x81, PSPBytesPerRow(640, vdepth), vdepth); + add_mode(640, 480, 0x82, PSPBytesPerRow(640, vdepth), vdepth); + add_mode(726, 544, 0x83, PSPBytesPerRow(726, vdepth), vdepth); + add_mode(768, 432, 0x84, PSPBytesPerRow(768, vdepth), vdepth); + add_mode(768, 576, 0x85, PSPBytesPerRow(768, vdepth), vdepth); +} + +// Set Mac frame layout and base address (uses the_buffer/MacFrameBaseMac) +static void set_mac_frame_buffer(PSP_monitor_desc &monitor, int depth, bool native_byte_order) +{ +#if !REAL_ADDRESSING && !DIRECT_ADDRESSING + int layout = FLAYOUT_DIRECT; + if (depth == VDEPTH_16BIT) + layout = FLAYOUT_HOST_565; + else if (depth == VDEPTH_32BIT) + layout = FLAYOUT_DIRECT; + if (native_byte_order) + MacFrameLayout = layout; + else + MacFrameLayout = FLAYOUT_DIRECT; + monitor.set_mac_frame_base(MacFrameBaseMac); + + // Set variables used by UAE memory banking + const video_mode &mode = monitor.get_current_mode(); + MacFrameBaseHost = the_buffer; + MacFrameSize = mode.bytes_per_row * mode.y; + InitFrameBufferMapping(); +#else + monitor.set_mac_frame_base(Host2MacAddr(the_buffer)); +#endif + D(bug("monitor.mac_frame_base = %08x\n", monitor.get_mac_frame_base())); +} + +/* + * Display "driver" classes + */ + +class driver_base { +public: + driver_base(PSP_monitor_desc &m); + virtual ~driver_base(); + +public: + PSP_monitor_desc &monitor; // Associated video monitor + const video_mode &mode; // Video mode handled by the driver + + bool init_ok; // Initialization succeeded (we can't use exceptions because of -fomit-frame-pointer) +}; + +class driver_fullscreen : public driver_base { +public: + driver_fullscreen(PSP_monitor_desc &monitor); + ~driver_fullscreen(); +}; + +static driver_base *drv = NULL; // Pointer to currently used driver object + +driver_base::driver_base(PSP_monitor_desc &m) + : monitor(m), mode(m.get_current_mode()), init_ok(false) +{ + //the_buffer = NULL; +} + +driver_base::~driver_base() +{ +// if (the_buffer != NULL) { +// D(bug(" releasing the_buffer at %p (%d bytes)\n", the_buffer, the_buffer_size)); +// free(the_buffer); +// the_buffer = NULL; +// } +} + + +/* + * Full-screen display driver + */ + +// Open display +driver_fullscreen::driver_fullscreen(PSP_monitor_desc &m) + : driver_base(m) +{ + int width = mode.x, height = mode.y; + + // Set relative mouse mode + ADBSetRelMouseMode(true); + + // Allocate memory for frame buffer + the_buffer_size = 768*576*4; //height * PSPBytesPerRow(width, mode.depth); + //the_buffer = (uint8 *)((uint32)frame_buffer | 0x40000000); // ((uint32)memalign(64, the_buffer_size) | 0x40000000); + the_buffer = (uint8 *)((uint32)memalign(64, the_buffer_size)); + //sceKernelDcacheWritebackInvalidateAll(); + D(bug("the_buffer = %p\n", the_buffer)); + + psp_screen_x = width; + psp_screen_y = height; + psp_screen_d = mode.depth; + scale_x = d_w*1.0/psp_screen_x; + scale_y = d_h*1.0/psp_screen_y; + + // Init blitting routines + + // Set frame buffer base + set_mac_frame_buffer(monitor, mode.depth, true); + + // Everything went well + init_ok = true; +} + + +// Close display +driver_fullscreen::~driver_fullscreen() +{ +} + + +/* + * Initialization + */ + +// Init keycode translation table +static void keycode_init(void) +{ + bool use_kc = PrefsFindBool("keycodes"); + if (use_kc) { + + // Get keycode file path from preferences + const char *kc_path = PrefsFindString("keycodefile"); + + // Open keycode table + FILE *f = fopen(kc_path ? kc_path : KEYCODE_FILE_NAME, "r"); + if (f == NULL) { + //char str[256]; + //sprintf(str, GetString(STR_KEYCODE_FILE_WARN), kc_path ? kc_path : KEYCODE_FILE_NAME, strerror(errno)); + //WarningAlert(str); + return; + } + + // Default translation table + for (int i=0; i<256; i++) + keycode_table[i] = -1; + + char line[256]; + int n_keys = 0; + while (fgets(line, sizeof(line) - 1, f)) { + // Read line + int len = strlen(line); + if (len == 0) + continue; + line[len-1] = 0; + + // Comments begin with "#" or ";" + if (line[0] == '#' || line[0] == ';' || line[0] == 0) + continue; + + // Read keycode + int x_code, mac_code; + if (sscanf(line, "%d %d", &x_code, &mac_code) == 2) + keycode_table[x_code & 0xff] = mac_code, n_keys++; + else + break; + } + + // Keycode file completely read + fclose(f); + use_keycodes = n_keys > 0; + + D(bug("Using keycodes table, %d key mappings\n", n_keys)); + } +} + +void psp_video_setup(void) +{ + screen = vita2d_create_empty_texture_format(768, 576, SCE_GXM_TEXTURE_FORMAT_U8U8U8U8_ABGR); + screen_data = (unsigned int*)vita2d_texture_get_datap(screen); + + vita2d_start_drawing(); + vita2d_clear_screen(); + vita2d_end_drawing(); + vita2d_swap_buffers(); + vita2d_start_drawing(); + vita2d_clear_screen(); + vita2d_end_drawing(); + vita2d_swap_buffers(); + + refresh_okay = true; +} + +// Open display for current mode +bool PSP_monitor_desc::video_open(void) +{ + D(bug("video_open()\n")); +#if DEBUG + const video_mode &mode = get_current_mode(); + D(bug("Current video mode:\n")); + D(bug(" %dx%d (ID %02x), %d bpp\n", mode.x, mode.y, mode.resolution_id, 1 << (mode.depth & 0x0f))); +#endif + + if (drv) + delete drv; + drv = new driver_fullscreen(*this); + if (drv == NULL) + return false; + if (!drv->init_ok) { + delete drv; + drv = NULL; + return false; + } + + psp_video_setup(); + + return true; +} + + +bool VideoInit(bool classic) +{ + if (classic) + return false; // not supported by PSP + + sceHidKeyboardEnumerate(&keyboard_hid_handle, 1); + sceHidMouseEnumerate(&mouse_hid_handle, 1); + + // Init keycode translation + keycode_init(); + + // Read prefs + frame_skip = PrefsFindInt32("frameskip"); + psp_lcd_aspect = PrefsFindInt32("pspdar"); + // set PSP screen variables + BUF_WIDTH = 768; + SCR_WIDTH = 960; + SCR_HEIGHT = 544; + DISP_BUF = 0; + + if (psp_lcd_aspect) + { + d_w = 960; + d_h = 544; + d_x = 0; + d_y = 0; + } + else + { + d_w = 726; + d_h = 544; + d_x = (960-726)/2; + d_y = 0; + } + + // Get screen mode from preferences + const char *mode_str = NULL; + mode_str = PrefsFindString("screen"); + + // Determine display default dimensions + int default_width, default_height, default_depth; + default_width = default_height = default_depth = 0; + if (mode_str) + if (sscanf(mode_str, "%d/%d/%d", &default_width, &default_height, &default_depth) != 3) + default_width = default_height = default_depth = 0; + + int default_mode; + if ((default_width == 512) && (default_height == 384)) + default_mode = 0x80; + else if ((default_width == 640) && (default_height == 360)) + default_mode = 0x81; + else if ((default_width == 640) && (default_height == 480)) + default_mode = 0x82; + else if ((default_width == 726) && (default_height == 544)) + default_mode = 0x83; + else if ((default_width == 768) && (default_height == 432)) + default_mode = 0x84; + else if ((default_width == 768) && (default_height == 576)) + default_mode = 0x85; + else { + default_width = 640; + default_height = 480; + default_depth = 8; + default_mode = 0x81; + } + + video_depth default_vdepth; + switch (default_depth) { + case 4: + default_vdepth = VDEPTH_4BIT; + break; + case 8: + default_vdepth = VDEPTH_8BIT; + break; + case 15: case 16: + default_vdepth = VDEPTH_16BIT; + break; + case 24: case 32: + default_vdepth = VDEPTH_32BIT; + break; + default: + default_vdepth = VDEPTH_8BIT; + default_depth = 8; + break; + } + + // Construct list of supported modes + add_video_modes(VDEPTH_4BIT); + add_video_modes(VDEPTH_8BIT); + add_video_modes(VDEPTH_16BIT); + add_video_modes(VDEPTH_32BIT); + +#if DEBUG + D(bug("Available video modes:\n")); + std::vector::const_iterator i, end = VideoModes.end(); + for (i = VideoModes.begin(); i != end; ++i) { + const video_mode &mode = (*i); + int bits = 1 << (mode.depth & 0x0f); + if (bits == 16) + bits = 15; + else if (bits == 32) + bits = 24; + D(bug(" %dx%d (ID %02x), %d colors\n", mode.x, mode.y, mode.resolution_id, 1 << bits)); + } +#endif + + // Create PSP_monitor_desc for this (the only) display + PSP_monitor_desc *monitor = new PSP_monitor_desc(VideoModes, default_vdepth, default_mode); + VideoMonitors.push_back(monitor); + + + + // Open display + return monitor->video_open(); +} + + +/* + * Deinitialization + */ + +// Close display +void PSP_monitor_desc::video_close(void) +{ + D(bug("video_close()\n")); + + refresh_okay = false; + + //sceGuTerm(); + + // Close display +// if (drv) +// { +// delete drv; +// drv = NULL; +// } +} + + +void VideoExit(void) +{ + // crashes PSP, so we'll just skip it for now ;) +#if 0 + // Close displays + vector::iterator i, end = VideoMonitors.end(); + for (i = VideoMonitors.begin(); i != end; ++i) + dynamic_cast(*i)->video_close(); +#endif +} + + +/* + * Close down full-screen mode (if bringing up error alerts is unsafe while in full-screen mode) + */ + +void VideoQuitFullScreen(void) +{ + D(bug("VideoQuitFullScreen()\n")); +} + +// removeable media menu support + +struct fileentries { + char filename[FILENAME_MAX]; + char path[FILENAME_MAX]; + int flags; +}; + +#define MAXCDROMS 64 +#define MAXFLOPPIES 64 +#define MAXIMAPS 64 + +static struct fileentries cdroms[MAXCDROMS]; +static struct fileentries floppies[MAXFLOPPIES]; +static struct fileentries imaps[MAXIMAPS]; + +static int numcdroms = -1; +static int numfloppies = -1; +static int numimaps = -1; + +static bool caps_lock = false; + +extern char psp_home[]; + +extern int parse_dir (char *path, struct fileentries *thefiles, int maxentries); + +#define NUM_MAPS 64 + +static uint32 button_map[NUM_MAPS][7] = { + { 0x0010, 0x0000, 62, 255, 255, 255, 0 }, + { 0x0020, 0x0000, 60, 255, 255, 255, 0 }, + { 0x0040, 0x0000, 61, 255, 255, 255, 0 }, + { 0x0080, 0x0000, 59, 255, 255, 255, 0 }, + { 0x0100, 0x0000, 58, 255, 255, 255, 0 }, + { 0x0200, 0x0000, 54, 255, 255, 255, 0 }, + { 0x1000, 0x0000, 55, 12, 255, 255, 0 }, + { 0x2000, 0x0000, 55, 13, 255, 255, 0 }, + { 0x4000, 0x0000, 256, 255, 255, 255, 0 }, + { 0x8000, 0x0000, 36, 255, 255, 255, 0 }, + { 0, 0, 0, 0, 0, 0, 0 } +}; + +void parse_imap(FILE *fd) +{ + char temp[128]; + uint32 i, j, k, l, m, n, o; + + memset((void *)button_map, 0, NUM_MAPS*7*4); + + for (i=0; i> 4) - 8, (int32)(button_map[i][2] & 0x00F) - 8); + return; + } + + if (button_map[i][6]) + return; // already sent key down + + button_map[i][6] = 1; + + if (button_map[i][2] == 57) + { + // caps lock + caps_lock = caps_lock ? false : true; + if (caps_lock) + ADBKeyDown(57); + else + ADBKeyUp(57); + return; + } + + if (button_map[i][2] & 0x100) + ADBMouseDown(button_map[i][2] & 7); + else + ADBKeyDown(button_map[i][2]); + + if (button_map[i][3] & 0x100) + ADBMouseDown(button_map[i][3] & 7); + else if (button_map[i][3] != 0xFF) + ADBKeyDown(button_map[i][3]); + + if (button_map[i][4] & 0x100) + ADBMouseDown(button_map[i][4] & 7); + else if (button_map[i][4] != 0xFF) + ADBKeyDown(button_map[i][4]); + + if (button_map[i][5] & 0x100) + ADBMouseDown(button_map[i][5] & 7); + else if (button_map[i][5] != 0xFF) + ADBKeyDown(button_map[i][5]); +} + +void key_up(int i) +{ + if (!button_map[i][6]) + return; // already sent key up + + button_map[i][6] = 0; + + if (button_map[i][2] == 57) + return; // ignore caps lock key up + + if (button_map[i][5] & 0x100) + ADBMouseUp(button_map[i][5] & 7); + else if (button_map[i][5] != 0xFF) + ADBKeyUp(button_map[i][5]); + + if (button_map[i][4] & 0x100) + ADBMouseUp(button_map[i][4] & 7); + else if (button_map[i][4] != 0xFF) + ADBKeyUp(button_map[i][4]); + + if (button_map[i][3] & 0x100) + ADBMouseUp(button_map[i][3] & 7); + else if (button_map[i][3] != 0xFF) + ADBKeyUp(button_map[i][3]); + + if (button_map[i][2] & 0x100) + ADBMouseUp(button_map[i][2] & 7); + else + ADBKeyUp(button_map[i][2]); +} + +void handle_keyboard(void) +{ + static uint8 mac_key[0xE8] = { + 255, 255, 255, 255, 0, 11, 8, 2, + 14, 3, 5, 4, 34, 38, 40, 37, + 46, 45, 31, 35, 12, 15, 1, 17, + 32, 9, 13, 7, 16, 6, 18, 19, + 20, 21, 23, 22, 26, 28, 25, 29, + 36, 53, 51, 48, 49, 27, 24, 33, + 30, 42, 255, 41, 39, 50, 43, 47, + 44, 57, 122, 120, 99, 118, 96, 97, + 98, 100, 101, 109, 103, 111, 105, 107, + 113, 114, 115, 116, 117, 119, 121, 60, + 59, 61, 62, 71, 75, 67, 78, 69, + 76, 83, 84, 85, 86, 87, 88, 90, + 91, 92, 82, 65, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255 + }; + + static uint8 prev_keys[6] = {0}; + static uint8 prev_modifiers = 0; + + if (keyboard_hid_handle > 0) + { + int numReports = sceHidKeyboardRead(keyboard_hid_handle, (SceHidKeyboardReport**)&k_reports, SCE_HID_MAX_REPORT); + + if (numReports < 0) { + keyboard_hid_handle = 0; + } + else if (numReports) { + + if (k_reports[numReports-1].modifiers[1] & 0x2) //Caps Lock + { + if (!caps_lock) { + caps_lock = true; + ADBKeyDown(57); + } + } + else + { + if (caps_lock) { + caps_lock = false; + ADBKeyUp(57); + } + } + + int l_ctrl_pressed = k_reports[numReports-1].modifiers[0] & 0x1 || prev_modifiers & 0x10; + int l_ctrl_prev_pressed = prev_modifiers & 0x1 || prev_modifiers & 0x10; + if (l_ctrl_pressed) + { + if (!l_ctrl_prev_pressed) { + ADBKeyDown(54); + } + } + else + { + if (l_ctrl_prev_pressed) { + ADBKeyUp(54); + } + } + + int l_shift_pressed = k_reports[numReports-1].modifiers[0] & 0x2 || prev_modifiers & 0x20; + int l_shift_prev_pressed = prev_modifiers & 0x2 || prev_modifiers & 0x20; + if (l_shift_pressed) + { + if (!l_shift_prev_pressed) { + ADBKeyDown(56); + } + } + else + { + if (l_shift_prev_pressed) { + ADBKeyUp(56); + } + } + + int l_alt_pressed = k_reports[numReports-1].modifiers[0] & 0x4 || prev_modifiers & 0x40; + int l_alt_prev_pressed = prev_modifiers & 0x4 || prev_modifiers & 0x4; + if (l_alt_pressed) + { + if (!l_alt_prev_pressed) { + ADBKeyDown(55); + } + } + else + { + if (l_alt_prev_pressed) { + ADBKeyUp(55); + } + } + + int l_logo_pressed = k_reports[numReports-1].modifiers[0] & 0x8 || prev_modifiers & 0x80; + int l_logo_prev_pressed = prev_modifiers & 0x8 || prev_modifiers & 0x80; + if (l_logo_pressed) + { + if (!l_logo_prev_pressed) { + ADBKeyDown(58); + } + } + else + { + if (l_logo_prev_pressed) { + ADBKeyUp(58); + } + } + + prev_modifiers = k_reports[numReports-1].modifiers[0]; + + int i, j; + + for (i = 0; i < 6; i++) { + + int keyCode = k_reports[numReports-1].keycodes[i]; + + if (keyCode != prev_keys[i]) { + + ADBKeyUp(mac_key[prev_keys[i]]); + + if (keyCode) { + ADBKeyDown(mac_key[keyCode]); + } + + prev_keys[i] = keyCode; + } + } + } + } +} + +void handle_menu(SceCtrlData pad, char *message) +{ + uint32 buttons; + static uint32 oldButtons = 0; + static uint32 sel = 0; + static uint32 max = 0; + static uint32 idx = 0; // 0 = input maps, 1 = floppies, 2 = cdroms + char temp[256]; + + if (numcdroms == -1) + { + strcpy(temp, psp_home); + strcat(temp, "cdroms"); + numcdroms = parse_dir(temp, cdroms, MAXCDROMS); + } + if (numfloppies == -1) + { + strcpy(temp, psp_home); + strcat(temp, "disks"); + numfloppies = parse_dir(temp, floppies, MAXFLOPPIES); + } + if (numimaps == -1) + { + strcpy(temp, psp_home); + strcat(temp, "imaps"); + numimaps = parse_dir(temp, imaps, MAXIMAPS); + } + + // safety check + if (numcdroms == 0 && numfloppies == 0 && numimaps == 0) + return; + + // take care of initially clear max + while (max == 0) + { + max = (idx == 0) ? numimaps : (idx == 1) ? numfloppies : numcdroms; + if (max) + break; + idx = idx<2 ? idx+1 : 0; + } + + buttons = pad.buttons ^ oldButtons; // set if button changed + oldButtons = pad.buttons; + + if (buttons & (SCE_CTRL_LEFT | SCE_CTRL_RIGHT)) + if (pad.buttons & SCE_CTRL_LEFT) + { + // dec index + idx = idx>0 ? idx-1 : 2; + sel = 0; + max = 0; + while (max == 0) + { + max = (idx == 0) ? numimaps : (idx == 1) ? numfloppies : numcdroms; + if (max) + break; + idx = idx>0 ? idx-1 : 2; + } + } + else if (pad.buttons & SCE_CTRL_RIGHT) + { + // inc index + idx = idx<2 ? idx+1 : 0; + sel = 0; + max = 0; + while (max == 0) + { + max = (idx == 0) ? numimaps : (idx == 1) ? numfloppies : numcdroms; + if (max) + break; + idx = idx<2 ? idx+1 : 0; + } + } + + if (buttons & SCE_CTRL_UP) + if (pad.buttons & SCE_CTRL_UP) + sel = sel>0 ? sel-1 : max-1; + + if (buttons & SCE_CTRL_DOWN) + if (pad.buttons & SCE_CTRL_DOWN) + sel = selname) + free(floppy_fh->name); + floppy_fh->name = strdup(temp); + floppy_fh->fd = open(temp, floppy_fh->read_only ? O_RDONLY : O_RDWR); + if (floppy_fh->fd < 0 && !floppy_fh->read_only) { + // Read-write failed, try read-only + floppy_fh->read_only = true; + floppy_fh->fd = open(temp, O_RDONLY); + } + if (floppy_fh->fd >= 0) + { + floppy_fh->start_byte = 0; + // Detect disk image file layout + loff_t size = 0; + size = lseek(floppy_fh->fd, 0, SEEK_END); + uint8 data[256]; + lseek(floppy_fh->fd, 0, SEEK_SET); + read(floppy_fh->fd, data, 256); + FileDiskLayout(size, data, floppy_fh->start_byte, floppy_fh->file_size); + psp_floppy_inserted = floppy_fh->name; + MountVolume(floppy_fh); + } + else + { + floppy_fh->fd = -1; + } + } + } + else if (idx == 2) + { + // mount cdrom + if (psp_cdrom_inserted == NULL) + { + strcpy(temp, cdroms[sel].path); + strcat(temp, "/"); + strcat(temp, cdroms[sel].filename); + if (cdrom_fh->name) + free(cdrom_fh->name); + cdrom_fh->name = strdup(temp); + cdrom_fh->fd = open(temp, O_RDONLY); + if (cdrom_fh->fd >= 0) + { + cdrom_fh->read_only = true; + cdrom_fh->start_byte = 0; + // Detect disk image file layout + loff_t size = 0; + size = lseek(cdrom_fh->fd, 0, SEEK_END); + uint8 data[256]; + lseek(cdrom_fh->fd, 0, SEEK_SET); + read(cdrom_fh->fd, data, 256); + FileDiskLayout(size, data, cdrom_fh->start_byte, cdrom_fh->file_size); + psp_cdrom_inserted = cdrom_fh->name; + MountVolume(cdrom_fh); + } + else + { + cdrom_fh->fd = -1; + } + } + } + } +} + +void show_msg(char *message, uint32 fc, uint32 bc) +{ +} + +/* + * Mac VBL interrupt + */ + +void VideoInterrupt(void) +{ + SceCtrlData pad; + SceTouchData touch; + static bool mouseClickedTouch = false; + static bool leftMouseClicked = false; + static bool rightMouseClicked = false; + static bool initialTouch = false; + uint32 buttons; + static uint32 oldButtons = 0; + static uint32 qualifiers = 0; + static bool input_mode = false; + static bool show_menu = false; + static bool show_on_right = true; + static int frame_cnt = 0; + static char msgtxt[68] = { '\0' }; + uint32 fc = 0xFF000000; + uint32 bc = 0xFF8888FF; + static int stick[16] = { -8, -8, -6, -4, -2, -1, -1, 0, 0, 0, 1, 1, 2, 4, 6, 8 }; + + sceCtrlReadBufferPositive(0, &pad, 1); + sceTouchPeek(0, &touch, 1); + buttons = pad.buttons ^ oldButtons; // set if button changed + oldButtons = pad.buttons; + + if (buttons & SCE_CTRL_START) + if (pad.buttons & SCE_CTRL_START) + input_mode = input_mode ? false : true; // toggle input mode + + if (buttons & SCE_CTRL_SELECT) + if (pad.buttons & SCE_CTRL_SELECT) + show_menu = show_menu ? false : true; // toggle imap/floppy/cdrom menu + if (input_mode) + show_menu = false; // select used for qualifiers in OSK + else + { + qualifiers = 0; // clear qualifiers when exit OSK + msgtxt[0] = 0; // clear onscreen message + } + + // refresh video + if (refresh_okay) + { + --frame_cnt; + if (frame_cnt < 0) + { + vita2d_start_drawing(); + + frame_cnt = frame_skip - 1; + if (psp_screen_d == VDEPTH_4BIT) + refresh4(); + else if (psp_screen_d == VDEPTH_8BIT) + refresh8(); + else if (psp_screen_d == VDEPTH_16BIT) + refresh15(); + else if (psp_screen_d == VDEPTH_32BIT) + refresh24(); + + vita2d_end_drawing(); + vita2d_swap_buffers(); + } + + // process inputs + if (!input_mode && !show_menu) + { + if (touch.reportNum <= 0 && mouseClickedTouch) + { + mouseClickedTouch = false; + initialTouch = true; + ADBMouseUp(0); + } + else if (touch.reportNum > 0) { + ADBSetRelMouseMode(false); + + int x = lerp(touch.report[0].x, 1920, 960); + int y =lerp(touch.report[0].y, 1088, 544); + + //map to display + int display_x = (x - ((960.0 - psp_screen_x*scale_x)/2)) / scale_x; + int display_y = y / scale_y; + + ADBMouseMoved(display_x, display_y); + + if (!mouseClickedTouch && initialTouch) + { + initialTouch = false; + } + else if (!mouseClickedTouch) + { + mouseClickedTouch = true; + ADBMouseDown(0); + } + } + + // mouse + if (abs(pad.lx - 128) >= 32 || abs(pad.ly - 128) >= 32) + { + ADBSetRelMouseMode(true); + ADBMouseMoved(stick[((pad.lx - 128) >> 4) + 8], stick[((pad.ly - 128) >> 4) + 8]); + } + + for (int i=0; i 0) + { + ADBSetRelMouseMode(true); + int i = 0; + for (int i = 0; i < ret; i++) + { + ADBMouseMoved(m_reports[i].rel_x*2, m_reports[i].rel_y*2); + } + + if (m_reports[i].buttons & 0x1) { //Left mouse button + if (!leftMouseClicked) { + leftMouseClicked = true; + ADBMouseDown(0); + } + } + else { + if (leftMouseClicked) { + leftMouseClicked = false; + ADBMouseUp(0); + } + } + + if (m_reports[i].buttons & 0x2) { //Right mouse button + if (!rightMouseClicked) { + rightMouseClicked = true; + ADBMouseDown(1); + } + } + else { + if (rightMouseClicked) { + rightMouseClicked = false; + ADBMouseUp(1); + } + } + } + } + + if (keyboard_hid_handle) { + handle_keyboard(); + } + + // Emergency quit requested? Then quit + if (emerg_quit) + QuitEmulator(); + + } +} + + +/* + * Set interrupts enable + */ + +void PSP_monitor_desc::set_interrupts_enable(bool enable) +{ + psp_int_enable = enable; +} + + +/* + * Set palette + */ + +void PSP_monitor_desc::set_palette(uint8 *pal, int num_in) +{ + int i; + // Convert colors to CLUT + unsigned int *clut = (unsigned int *)(((unsigned int)clut256)); + for (i = 0; i < 256; ++i){ + clut[i] = (0xFF << 24)|(pal[i*3 + 2] << 16)|(pal[i*3 + 1] << 8)|(pal[i*3]); + } + + + if (psp_screen_d == VDEPTH_16BIT) + { + // convert xrrr rrgg + unsigned int *dclut = (unsigned int *)(((unsigned int)clut0_15)); + for (i = 0; i < 256; ++i) + dclut[i] = (0xFF << 24) | (clut[(i&3)<<3] & 0x0000FF00) | (clut[(i&0x7C)>>2] & 0x000000FF); + + // convert gggb bbbb + dclut = (unsigned int *)(((unsigned int)clut1_15)); + for (i = 0; i < 256; ++i) + dclut[i] = (0xFF << 24) | (clut[i&0x1F] & 0x00FF0000) | (clut[(i&0xE0)>>5] & 0x0000FF00); + + } + if (psp_screen_d == VDEPTH_32BIT) + { + // convert red + unsigned int *dclut = (unsigned int *)(((unsigned int)clut0_24)); + for (i = 0; i < 256; ++i) + dclut[i] = (0xFF << 24) | (clut[i] & 0x000000FF); + + // convert green + dclut = (unsigned int *)(((unsigned int)clut1_24)); + for (i = 0; i < 256; ++i) + dclut[i] = (0xFF << 24) | (clut[i] & 0x0000FF00); + + // convert blue + dclut = (unsigned int *)(((unsigned int)clut2_24)); + for (i = 0; i < 256; ++i) + dclut[i] = (0xFF << 24) | (clut[i] & 0x00FF0000); + } +} + + +/* + * Switch video mode + */ + +void PSP_monitor_desc::switch_to_current_mode(void) +{ + // Close and reopen display + video_close(); + video_open(); + + if (drv == NULL) { + ErrorAlert(STR_OPEN_WINDOW_ERR); + QuitEmulator(); + } +} diff --git a/src/PSP2/video_psp_old.cpp b/src/PSP2/video_psp_old.cpp new file mode 100644 index 0000000..707787e --- /dev/null +++ b/src/PSP2/video_psp_old.cpp @@ -0,0 +1,1341 @@ +/* + * video_psp.cpp - Video/graphics emulation, PSP specific stuff + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "intraFont.h" +#include "danzeff/danzeff.h" + +#include "sysdeps.h" + +#include +#include +#include +#include + +#include "cpu_emulation.h" +#include "main.h" +#include "adb.h" +#include "macos_util.h" +#include "prefs.h" +#include "user_strings.h" +#include "video.h" +#include "video_defs.h" + +#define DEBUG 0 +#include "debug.h" + + +// Supported video modes +using std::vector; +static vector VideoModes; + + +// Constants +const char KEYCODE_FILE_NAME[] = "BasiliskII_keycodes"; + + +// Global variables +static unsigned int __attribute__((aligned(16))) clut256[256]; + +static uint8 __attribute__((aligned(64))) frame_buffer[768*576*4]; + +static int32 frame_skip; // Prefs items + +static bool refresh_okay = false; + +static uint8 *the_buffer = NULL; // Mac frame buffer (where MacOS draws into) +static uint32 the_buffer_size; // Size of allocated the_buffer + +static uint32 psp_screen_x = 640; +static uint32 psp_screen_y = 480; +static uint32 psp_screen_d = VDEPTH_8BIT; + + +extern bool emerg_quit; // Flag: emergency quit requested + + +extern char *psp_floppy_inserted; // String: filename of floppy inserted +extern char *psp_cdrom_inserted; // String: filename of cdrom inserted +extern bool psp_cdrom_locked; // Flag: cdrom lock + +// File handles are pointers to these structures +struct file_handle { + char *name; // Copy of device/file name + int fd; + bool is_file; // Flag: plain file or /dev/something? + bool is_floppy; // Flag: floppy device + bool is_cdrom; // Flag: CD-ROM device + bool read_only; // Copy of Sys_open() flag + loff_t start_byte; // Size of file header (if any) + loff_t file_size; // Size of file data (only valid if is_file is true) + int toc_fd; // filedesc for cdrom TOC file +}; + +extern file_handle *floppy_fh; +extern file_handle *cdrom_fh; + + +static bool psp_int_enable = false; +static bool use_keycodes = false; // Flag: Use keycodes rather than keysyms +static int keycode_table[256]; // X keycode -> Mac keycode translation table + + +/* + * refresh subroutines + */ + +#define PSP_SLICE_SIZE 32 + +static unsigned int list[16384] __attribute__((aligned(16))); + +struct texVertex +{ + unsigned short u, v; + short x, y, z; +}; + +static inline int roundUpToPowerOfTwo (int x) +{ + return 1 << (32 - __builtin_allegrex_clz(x - 1)); +} + +// based on PSP_GuStretchBlit() in SDL +static void refresh4(void *src, int sp, int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh) +{ + unsigned short old_slice = 0; /* set when we load 2nd tex */ + unsigned int slice, num_slices, width, height, tbw, off_x, off_bytes; + struct texVertex *vertices; + int pixels; + + off_bytes = ((int)src + sx / 2) & 0xf; + off_x = off_bytes * 2; + width = roundUpToPowerOfTwo(sw + off_x); + height = roundUpToPowerOfTwo(sh); + tbw = sp * 2; + + // four bit video hack + uint32 *srp = (uint32 *)src; + uint32 *dp = (uint32 *)((int)src + 768*576/2); + int i,j; + for (j=0; j<576; j++) + for (i=0; i<768/8; i++) + { + uint32 v = srp[j*768/8 + i]; + uint32 vv1 = (v>>4)&0x0F0F0F0F | (v<<4)&0xF0F0F0F0; + dp[j*768/8 + i] = vv1; + } + src = (void *)((int)src + 768*576/2); + + /* Align the texture prior to sx */ + pixels = (int)src + (sx - off_x) / 2 + sp * sy; + num_slices = (sw + (PSP_SLICE_SIZE - 1)) / PSP_SLICE_SIZE; + + /* GE doesn't appreciate textures wider than 512 */ + if (width > 512) + width = 512; + + sceGuStart(GU_DIRECT,list); + sceGuClutMode(GU_PSM_8888,0,0x0F,0); // 32-bit palette, shift = 0, mask = 0x0F, start = 0 + sceGuClutLoad((16/(32/4)),clut256); // upload 2 blocks (each block is 32 bytes / bytesPerColorEntry) + sceGuEnable(GU_TEXTURE_2D); + sceGuTexMode(GU_PSM_T4,0,0,0); + sceGuTexFunc(GU_TFX_REPLACE, GU_TCC_RGB); + sceGuTexFilter(GU_LINEAR, GU_LINEAR); + sceGuTexImage(0, width, height, tbw, (void *)pixels); + sceGuTexSync(); + + for (slice = 0; slice < num_slices; slice++) + { + vertices = (struct texVertex*)sceGuGetMemory(2 * sizeof(struct texVertex)); + + if ((slice * PSP_SLICE_SIZE) < width) + { + vertices[0].u = slice * PSP_SLICE_SIZE + off_x; + } + else + { + if (!old_slice) + { + /* load another texture (src width > 512) */ + pixels += width / 2; + sceGuTexImage(0, roundUpToPowerOfTwo(sw - width), height, tbw, (void *)pixels); + sceGuTexSync(); + old_slice = slice; + } + vertices[0].u = (slice - old_slice) * PSP_SLICE_SIZE + off_x; + } + vertices[1].u = vertices[0].u + PSP_SLICE_SIZE; + if (vertices[1].u > (off_x + sw)) + vertices[1].u = off_x + sw; + + vertices[0].v = 0; + vertices[1].v = vertices[0].v + sh; + + vertices[0].x = dx + slice * PSP_SLICE_SIZE * dw / sw; + vertices[1].x = vertices[0].x + PSP_SLICE_SIZE * dw / sw; + + if (vertices[1].x > (dx + dw)) + vertices[1].x = dx + dw; + + vertices[0].y = dy; + vertices[1].y = vertices[0].y + dh; + + vertices[0].z = 0; + vertices[1].z = 0; + + sceGuDrawArray(GU_SPRITES,GU_TEXTURE_16BIT|GU_VERTEX_16BIT|GU_TRANSFORM_2D, 2,0,vertices); + } + +// sceGuFinish(); +// sceGuSync(0,0); +// sceDisplayWaitVblankStart(); +// sceGuSwapBuffers(); +} + +// based on PSP_GuStretchBlit() in SDL +static void refresh8(void *src, int sp, int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh) +{ + unsigned short old_slice = 0; /* set when we load 2nd tex */ + unsigned int slice, num_slices, width, height, tbw, off_x, off_bytes; + struct texVertex *vertices; + int pixels; + + off_bytes = ((int)src + sx) & 0xf; + off_x = off_bytes; + width = roundUpToPowerOfTwo(sw + off_x); + height = roundUpToPowerOfTwo(sh); + tbw = sp; + + /* Align the texture prior to sx */ + pixels = (int)src + (sx - off_x) + sp * sy; + num_slices = (sw + (PSP_SLICE_SIZE - 1)) / PSP_SLICE_SIZE; + + /* GE doesn't appreciate textures wider than 512 */ + if (width > 512) + width = 512; + + sceGuStart(GU_DIRECT,list); + sceGuClutMode(GU_PSM_8888,0,0xFF,0); // 32-bit palette, shift = 0, mask = 0xFF, start = 0 + sceGuClutLoad((256/(32/4)),clut256); // upload 32 blocks (each block is 32 bytes / bytesPerColorEntry) + sceGuEnable(GU_TEXTURE_2D); + sceGuTexMode(GU_PSM_T8,0,0,0); + sceGuTexFunc(GU_TFX_REPLACE, GU_TCC_RGB); + sceGuTexFilter(GU_LINEAR, GU_LINEAR); + sceGuTexImage(0, width, height, tbw, (void *)pixels); + sceGuTexSync(); + + for (slice = 0; slice < num_slices; slice++) + { + vertices = (struct texVertex*)sceGuGetMemory(2 * sizeof(struct texVertex)); + + if ((slice * PSP_SLICE_SIZE) < width) + { + vertices[0].u = slice * PSP_SLICE_SIZE + off_x; + } + else + { + if (!old_slice) + { + /* load another texture (src width > 512) */ + pixels += width; + sceGuTexImage(0, roundUpToPowerOfTwo(sw - width), height, tbw, (void *)pixels); + sceGuTexSync(); + old_slice = slice; + } + vertices[0].u = (slice - old_slice) * PSP_SLICE_SIZE + off_x; + } + vertices[1].u = vertices[0].u + PSP_SLICE_SIZE; + if (vertices[1].u > (off_x + sw)) + vertices[1].u = off_x + sw; + + vertices[0].v = 0; + vertices[1].v = vertices[0].v + sh; + + vertices[0].x = dx + slice * PSP_SLICE_SIZE * dw / sw; + vertices[1].x = vertices[0].x + PSP_SLICE_SIZE * dw / sw + 1; + + if (vertices[1].x > (dx + dw)) + vertices[1].x = dx + dw; + + vertices[0].y = dy; + vertices[1].y = vertices[0].y + dh; + + vertices[0].z = 0; + vertices[1].z = 0; + + sceGuDrawArray(GU_SPRITES,GU_TEXTURE_16BIT|GU_VERTEX_16BIT|GU_TRANSFORM_2D, 2,0,vertices); + } + +// sceGuFinish(); +// sceGuSync(0,0); +// sceDisplayWaitVblankStart(); +// sceGuSwapBuffers(); +} + +// based on PSP_GuStretchBlit() in SDL +static void refresh15(void *src, int sp, int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh) +{ + unsigned short old_slice = 0; /* set when we load 2nd tex */ + unsigned int slice, num_slices, width, height, tbw, off_x, off_bytes; + struct texVertex *vertices; + int pixels; + + off_bytes = ((int)src + sx * 2) & 0xf; + off_x = off_bytes / 2; + width = roundUpToPowerOfTwo(sw + off_x); + height = roundUpToPowerOfTwo(sh); + tbw = sp / 2; + + /* Align the texture prior to sx */ + pixels = (int)src + (sx - off_x) * 2 + sp * sy; + num_slices = (sw + (PSP_SLICE_SIZE - 1)) / PSP_SLICE_SIZE; + + /* GE doesn't appreciate textures wider than 512 */ + if (width > 512) + width = 512; + + sceGuStart(GU_DIRECT,list); + sceGuEnable(GU_TEXTURE_2D); + sceGuTexMode(GU_PSM_5551,0,0,0); + sceGuTexFunc(GU_TFX_REPLACE, GU_TCC_RGB); + sceGuTexFilter(GU_LINEAR, GU_LINEAR); + sceGuTexImage(0, width, height, tbw, (void *)pixels); + sceGuTexSync(); + + for (slice = 0; slice < num_slices; slice++) + { + vertices = (struct texVertex*)sceGuGetMemory(2 * sizeof(struct texVertex)); + + if ((slice * PSP_SLICE_SIZE) < width) + { + vertices[0].u = slice * PSP_SLICE_SIZE + off_x; + } + else + { + if (!old_slice) + { + /* load another texture (src width > 512) */ + pixels += width * 2; + sceGuTexImage(0, roundUpToPowerOfTwo(sw - width), height, tbw, (void *)pixels); + sceGuTexSync(); + old_slice = slice; + } + vertices[0].u = (slice - old_slice) * PSP_SLICE_SIZE + off_x; + } + vertices[1].u = vertices[0].u + PSP_SLICE_SIZE; + if (vertices[1].u > (off_x + sw)) + vertices[1].u = off_x + sw; + + vertices[0].v = 0; + vertices[1].v = vertices[0].v + sh; + + vertices[0].x = dx + slice * PSP_SLICE_SIZE * dw / sw; + vertices[1].x = vertices[0].x + PSP_SLICE_SIZE * dw / sw + 1; + + if (vertices[1].x > (dx + dw)) + vertices[1].x = dx + dw; + + vertices[0].y = dy; + vertices[1].y = vertices[0].y + dh; + + vertices[0].z = 0; + vertices[1].z = 0; + + sceGuDrawArray(GU_SPRITES,GU_TEXTURE_16BIT|GU_VERTEX_16BIT|GU_TRANSFORM_2D, 2,0,vertices); + } + +// sceGuFinish(); +// sceGuSync(0,0); +// sceDisplayWaitVblankStart(); +// sceGuSwapBuffers(); +} + +// based on PSP_GuStretchBlit() in SDL +static void refresh24(void *src, int sp, int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh) +{ + unsigned short old_slice = 0; /* set when we load 2nd tex */ + unsigned int slice, num_slices, width, height, tbw, off_x, off_bytes; + struct texVertex *vertices; + int pixels; + + off_bytes = ((int)src + sx * 4) & 0xf; + off_x = off_bytes / 4; + width = roundUpToPowerOfTwo(sw + off_x); + height = roundUpToPowerOfTwo(sh); + tbw = sp / 4; + + /* Align the texture prior to sx */ + pixels = (int)src + (sx - off_x) * 4 + sp * sy; + num_slices = (sw + (PSP_SLICE_SIZE - 1)) / PSP_SLICE_SIZE; + + /* GE doesn't appreciate textures wider than 512 */ + if (width > 512) + width = 512; + + sceGuStart(GU_DIRECT,list); + sceGuEnable(GU_TEXTURE_2D); + sceGuTexMode(GU_PSM_8888,0,0,0); + sceGuTexFunc(GU_TFX_REPLACE, GU_TCC_RGB); + sceGuTexFilter(GU_LINEAR, GU_LINEAR); + sceGuTexImage(0, width, height, tbw, (void *)pixels); + sceGuTexSync(); + + for (slice = 0; slice < num_slices; slice++) + { + vertices = (struct texVertex*)sceGuGetMemory(2 * sizeof(struct texVertex)); + + if ((slice * PSP_SLICE_SIZE) < width) + { + vertices[0].u = slice * PSP_SLICE_SIZE + off_x; + } + else + { + if (!old_slice) + { + /* load another texture (src width > 512) */ + pixels += width * 4; + sceGuTexImage(0, roundUpToPowerOfTwo(sw - width), height, tbw, (void *)pixels); + sceGuTexSync(); + old_slice = slice; + } + vertices[0].u = (slice - old_slice) * PSP_SLICE_SIZE + off_x; + } + vertices[1].u = vertices[0].u + PSP_SLICE_SIZE; + if (vertices[1].u > (off_x + sw)) + vertices[1].u = off_x + sw; + + vertices[0].v = 0; + vertices[1].v = vertices[0].v + sh; + + vertices[0].x = dx + slice * PSP_SLICE_SIZE * dw / sw; + vertices[1].x = vertices[0].x + PSP_SLICE_SIZE * dw / sw + 1; + + if (vertices[1].x > (dx + dw)) + vertices[1].x = dx + dw; + + vertices[0].y = dy; + vertices[1].y = vertices[0].y + dh; + + vertices[0].z = 0; + vertices[1].z = 0; + + sceGuDrawArray(GU_SPRITES,GU_TEXTURE_16BIT|GU_VERTEX_16BIT|GU_TRANSFORM_2D, 2,0,vertices); + } + +// sceGuFinish(); +// sceGuSync(0,0); +// sceDisplayWaitVblankStart(); +// sceGuSwapBuffers(); +} + + +/* + * monitor_desc subclass for PSP display + */ + +class PSP_monitor_desc : public monitor_desc { +public: + PSP_monitor_desc(const vector &available_modes, video_depth default_depth, uint32 default_id) : monitor_desc(available_modes, default_depth, default_id) {} + ~PSP_monitor_desc() {} + + virtual void switch_to_current_mode(void); + virtual void set_palette(uint8 *pal, int num); + virtual void set_interrupts_enable(bool enable); + + bool video_open(void); + void video_close(void); +}; + + +/* + * Utility functions + */ + +// Return bytes per row for requested vdepth +static int PSPBytesPerRow(int width, int vdepth) +{ + switch (vdepth) { + case VDEPTH_1BIT: return 768>>3; + case VDEPTH_2BIT: return 768>>2; + case VDEPTH_4BIT: return 768>>1; + case VDEPTH_8BIT: return 768; + case VDEPTH_16BIT: return 768<<1; + case VDEPTH_32BIT: return 768<<2; + } + return 768; +} + +// Add mode to list of supported modes +static void add_mode(int width, int height, int resolution_id, int bytes_per_row, int depth) +{ + // Fill in VideoMode entry + video_mode mode; + mode.x = width; + mode.y = height; + mode.resolution_id = resolution_id; + mode.bytes_per_row = bytes_per_row; + mode.depth = (video_depth)depth; + VideoModes.push_back(mode); +} + +// Add standard list of windowed modes for given color depth +static void add_video_modes(int depth) +{ + video_depth vdepth = (video_depth)depth; + add_mode(512, 384, 0x80, PSPBytesPerRow(512, vdepth), depth); + add_mode(640, 480, 0x81, PSPBytesPerRow(640, vdepth), depth); + add_mode(768, 576, 0x82, PSPBytesPerRow(768, vdepth), depth); +} + +// Set Mac frame layout and base address (uses the_buffer/MacFrameBaseMac) +static void set_mac_frame_buffer(PSP_monitor_desc &monitor, int depth, bool native_byte_order) +{ +#if !REAL_ADDRESSING && !DIRECT_ADDRESSING + int layout = FLAYOUT_DIRECT; + if (depth == VDEPTH_16BIT) + layout = FLAYOUT_HOST_565; + else if (depth == VDEPTH_32BIT) + layout = FLAYOUT_DIRECT; + if (native_byte_order) + MacFrameLayout = layout; + else + MacFrameLayout = FLAYOUT_DIRECT; + monitor.set_mac_frame_base(MacFrameBaseMac); + + // Set variables used by UAE memory banking + const video_mode &mode = monitor.get_current_mode(); + MacFrameBaseHost = the_buffer; + MacFrameSize = mode.bytes_per_row * mode.y; + InitFrameBufferMapping(); +#else + monitor.set_mac_frame_base(Host2MacAddr(the_buffer)); +#endif + D(bug("monitor.mac_frame_base = %08x\n", monitor.get_mac_frame_base())); +} + +/* + * Display "driver" classes + */ + +class driver_base { +public: + driver_base(PSP_monitor_desc &m); + virtual ~driver_base(); + +public: + PSP_monitor_desc &monitor; // Associated video monitor + const video_mode &mode; // Video mode handled by the driver + + bool init_ok; // Initialization succeeded (we can't use exceptions because of -fomit-frame-pointer) +}; + +class driver_fullscreen : public driver_base { +public: + driver_fullscreen(PSP_monitor_desc &monitor); + ~driver_fullscreen(); +}; + +static driver_base *drv = NULL; // Pointer to currently used driver object + +driver_base::driver_base(PSP_monitor_desc &m) + : monitor(m), mode(m.get_current_mode()), init_ok(false) +{ + //the_buffer = NULL; +} + +driver_base::~driver_base() +{ +// if (the_buffer != NULL) { +// D(bug(" releasing the_buffer at %p (%d bytes)\n", the_buffer, the_buffer_size)); +// free(the_buffer); +// the_buffer = NULL; +// } +} + + +/* + * Full-screen display driver + */ + +// Open display +driver_fullscreen::driver_fullscreen(PSP_monitor_desc &m) + : driver_base(m) +{ + int width = mode.x, height = mode.y; + + // Set relative mouse mode + ADBSetRelMouseMode(true); + + // Allocate memory for frame buffer + the_buffer_size = 768*576*4; //height * PSPBytesPerRow(width, mode.depth); + the_buffer = (uint8 *)((uint32)frame_buffer | 0x40000000); // ((uint32)memalign(64, the_buffer_size) | 0x40000000); + sceKernelDcacheWritebackInvalidateAll(); + D(bug("the_buffer = %p\n", the_buffer)); + + psp_screen_x = width; + psp_screen_y = height; + psp_screen_d = mode.depth; + + // Init blitting routines + + // Set frame buffer base + set_mac_frame_buffer(monitor, mode.depth, true); + + // Everything went well + init_ok = true; +} + + +// Close display +driver_fullscreen::~driver_fullscreen() +{ +} + + +/* + * Initialization + */ + +// Init keycode translation table +static void keycode_init(void) +{ + bool use_kc = PrefsFindBool("keycodes"); + if (use_kc) { + + // Get keycode file path from preferences + const char *kc_path = PrefsFindString("keycodefile"); + + // Open keycode table + FILE *f = fopen(kc_path ? kc_path : KEYCODE_FILE_NAME, "r"); + if (f == NULL) { + //char str[256]; + //sprintf(str, GetString(STR_KEYCODE_FILE_WARN), kc_path ? kc_path : KEYCODE_FILE_NAME, strerror(errno)); + //WarningAlert(str); + return; + } + + // Default translation table + for (int i=0; i<256; i++) + keycode_table[i] = -1; + + char line[256]; + int n_keys = 0; + while (fgets(line, sizeof(line) - 1, f)) { + // Read line + int len = strlen(line); + if (len == 0) + continue; + line[len-1] = 0; + + // Comments begin with "#" or ";" + if (line[0] == '#' || line[0] == ';' || line[0] == 0) + continue; + + // Read keycode + int x_code, mac_code; + if (sscanf(line, "%d %d", &x_code, &mac_code) == 2) + keycode_table[x_code & 0xff] = mac_code, n_keys++; + else + break; + } + + // Keycode file completely read + fclose(f); + use_keycodes = n_keys > 0; + + D(bug("Using keycodes table, %d key mappings\n", n_keys)); + } +} + + +#define BUF_WIDTH (512) +#define SCR_WIDTH (480) +#define SCR_HEIGHT (272) +#define PIXEL_SIZE (4) /* change this if you change to another screenmode */ +#define FRAME_SIZE (BUF_WIDTH * SCR_HEIGHT * PIXEL_SIZE) + +// Open display for current mode +bool PSP_monitor_desc::video_open(void) +{ + D(bug("video_open()\n")); +#if DEBUG + const video_mode &mode = get_current_mode(); + D(bug("Current video mode:\n")); + D(bug(" %dx%d (ID %02x), %d bpp\n", mode.x, mode.y, mode.resolution_id, 1 << (mode.depth & 0x0f))); +#endif + + if (drv) + delete drv; + drv = new driver_fullscreen(*this); + if (drv == NULL) + return false; + if (!drv->init_ok) { + delete drv; + drv = NULL; + return false; + } + + // setup GU + sceGuInit(); + sceGuStart(GU_DIRECT,list); + sceGuDrawBuffer(GU_PSM_8888,(void*)0,BUF_WIDTH); + sceGuDispBuffer(SCR_WIDTH,SCR_HEIGHT,(void*)FRAME_SIZE,BUF_WIDTH); + sceGuDepthBuffer((void*)(FRAME_SIZE*2),BUF_WIDTH); + sceGuOffset(2048 - (SCR_WIDTH/2),2048 - (SCR_HEIGHT/2)); + sceGuViewport(2048,2048,SCR_WIDTH,SCR_HEIGHT); + sceGuDepthRange(65535,0); + sceGuDepthMask(GU_TRUE); + sceGuDisable(GU_DEPTH_TEST); + sceGuScissor(0,0,SCR_WIDTH,SCR_HEIGHT); + sceGuEnable(GU_SCISSOR_TEST); + sceGuFrontFace(GU_CW); + sceGuEnable(GU_TEXTURE_2D); + sceGuClear(GU_COLOR_BUFFER_BIT); + sceGuFinish(); + sceGuSync(0,0); + sceDisplayWaitVblankStart(); + sceGuDisplay(GU_TRUE); + + refresh_okay = true; + + return true; +} + + +bool VideoInit(bool classic) +{ + if (classic) + return false; // not supported by PSP + + // Init keycode translation + keycode_init(); + + // Read prefs + frame_skip = PrefsFindInt32("frameskip"); + + // Get screen mode from preferences + const char *mode_str = NULL; + mode_str = PrefsFindString("screen"); + + // Determine display default dimensions + int default_width, default_height, default_depth; + default_width = default_height = default_depth = 0; + if (mode_str) + if (sscanf(mode_str, "%d/%d/%d", &default_width, &default_height, &default_depth) != 3) + default_width = default_height = default_depth = 0; + + int default_mode; + if ((default_width == 512) && (default_height == 384)) + default_mode = 0x80; + else if ((default_width == 640) && (default_height == 480)) + default_mode = 0x81; + else if ((default_width == 768) && (default_height == 576)) + default_mode = 0x82; + else { + default_width = 640; + default_height = 480; + default_depth = 8; + default_mode = 0x81; + } + + int default_vdepth; + switch (default_depth) { + case 4: + default_vdepth = VDEPTH_4BIT; + break; + case 8: + default_vdepth = VDEPTH_8BIT; + break; + case 15: case 16: + default_vdepth = VDEPTH_16BIT; + break; + case 24: case 32: + default_vdepth = VDEPTH_32BIT; + break; + default: + default_vdepth = VDEPTH_8BIT; + default_depth = 8; + break; + } + + // Construct list of supported modes + add_video_modes(VDEPTH_4BIT); + add_video_modes(VDEPTH_8BIT); + add_video_modes(VDEPTH_16BIT); + add_video_modes(VDEPTH_32BIT); + +#if DEBUG + D(bug("Available video modes:\n")); + std::vector::const_iterator i, end = VideoModes.end(); + for (i = VideoModes.begin(); i != end; ++i) { + const video_mode &mode = (*i); + int bits = 1 << (mode.depth & 0x0f); + if (bits == 16) + bits = 15; + else if (bits == 32) + bits = 24; + D(bug(" %dx%d (ID %02x), %d colors\n", mode.x, mode.y, mode.resolution_id, 1 << bits)); + } +#endif + + // Create PSP_monitor_desc for this (the only) display + PSP_monitor_desc *monitor = new PSP_monitor_desc(VideoModes, (video_depth)default_vdepth, default_mode); + VideoMonitors.push_back(monitor); + + // Open display + return monitor->video_open(); +} + + +/* + * Deinitialization + */ + +// Close display +void PSP_monitor_desc::video_close(void) +{ + D(bug("video_close()\n")); + + refresh_okay = false; + + //sceGuTerm(); + + // Close display +// if (drv) +// { +// delete drv; +// drv = NULL; +// } +} + + +void VideoExit(void) +{ + // crashes PSP, so we'll just skip it for now ;) +#ifndef PSP + // Close displays + vector::iterator i, end = VideoMonitors.end(); + for (i = VideoMonitors.begin(); i != end; ++i) + dynamic_cast(*i)->video_close(); +#endif +} + + +/* + * Close down full-screen mode (if bringing up error alerts is unsafe while in full-screen mode) + */ + +void VideoQuitFullScreen(void) +{ + D(bug("VideoQuitFullScreen()\n")); +} + +// removeable media menu support + +struct fileentries { + char filename[FILENAME_MAX]; + char path[FILENAME_MAX]; + int flags; +}; + +#define MAXCDROMS 64 +#define MAXFLOPPIES 64 + +static struct fileentries cdroms[MAXCDROMS]; +static struct fileentries floppies[MAXFLOPPIES]; + +static int numcdroms = -1; +static int numfloppies = -1; + +extern char psp_home[]; + +extern int parse_dir (char *path, struct fileentries *thefiles, int maxentries); + +void handle_menu(SceCtrlData pad, char *message) +{ + uint32 buttons; + static uint32 oldButtons = 0; + static uint32 sel = 0; + static uint32 max = 0; + static bool cds = false; + char temp[256]; + + if (numcdroms == -1) + { + strcpy(temp, psp_home); + strcat(temp, "cdroms"); + numcdroms = parse_dir(temp, cdroms, MAXCDROMS); + } + + if (numfloppies == -1) + { + strcpy(temp, psp_home); + strcat(temp, "disks"); + numfloppies = parse_dir(temp, floppies, MAXFLOPPIES); + } + + // safety check + if (numcdroms == 0 && numfloppies == 0) + return; + + buttons = pad.Buttons ^ oldButtons; // set if button changed + oldButtons = pad.Buttons; + + if (buttons & (PSP_CTRL_LEFT | PSP_CTRL_RIGHT)) + if (pad.Buttons & (PSP_CTRL_LEFT | PSP_CTRL_RIGHT)) + { + // swap between cdroms and floppies + cds = cds ? false : true; + sel = 0; + } + + max = cds ? numcdroms : numfloppies; + // safety check + if (max == 0) + { + // swap back because if we're here, we KNOW the other dir has entries + cds = cds ? false : true; + sel = 0; + max = cds ? numcdroms : numfloppies; + } + + if (buttons & PSP_CTRL_UP) + if (pad.Buttons & PSP_CTRL_UP) + sel = sel>0 ? sel-1 : max-1; + + if (buttons & PSP_CTRL_DOWN) + if (pad.Buttons & PSP_CTRL_DOWN) + sel = selname) + free(cdrom_fh->name); + cdrom_fh->name = strdup(temp); + cdrom_fh->fd = open(temp, O_RDONLY); + if (cdrom_fh->fd >= 0) + { + cdrom_fh->read_only = true; + cdrom_fh->start_byte = 0; + psp_cdrom_inserted = cdrom_fh->name; + MountVolume(cdrom_fh); + } + else + { + cdrom_fh->fd = -1; + } + } + } + else + { + if (psp_floppy_inserted == NULL) + { + strcpy(temp, floppies[sel].path); + strcat(temp, "/"); + strcat(temp, floppies[sel].filename); + if (floppy_fh->name) + free(floppy_fh->name); + floppy_fh->name = strdup(temp); + floppy_fh->fd = open(temp, floppy_fh->read_only ? O_RDONLY : O_RDWR); + if (floppy_fh->fd < 0 && !floppy_fh->read_only) { + // Read-write failed, try read-only + floppy_fh->read_only = true; + floppy_fh->fd = open(temp, O_RDONLY); + } + if (floppy_fh->fd >= 0) + { + floppy_fh->start_byte = 0; + psp_floppy_inserted = floppy_fh->name; + MountVolume(floppy_fh); + } + else + { + floppy_fh->fd = -1; + } + } + } + } +} + +void show_msg(char *message, uint32 fc, uint32 bc) +{ + struct texVertex *vertices; + + pspDebugScreenSetOffset(FRAME_SIZE*2); // change for vram buffers in new code + pspDebugScreenSetBackColor(bc); + pspDebugScreenSetTextColor(fc); + pspDebugScreenSetXY(0, 0); + pspDebugScreenPrintf("%s", message); + + sceGuEnable(GU_TEXTURE_2D); + sceGuTexMode(GU_PSM_8888,0,0,0); + sceGuTexFunc(GU_TFX_REPLACE, GU_TCC_RGB); + sceGuTexFilter(GU_LINEAR, GU_LINEAR); + sceGuTexImage(0, 512, 8, 512, (void *)(0x40000000 | (u32) sceGeEdramGetAddr() + FRAME_SIZE*2)); + sceGuTexSync(); + vertices = (struct texVertex*)sceGuGetMemory(2 * sizeof(struct texVertex)); + vertices[0].u = 0; + vertices[1].u = strlen(message)*7; + vertices[0].v = 0; + vertices[1].v = 8; + vertices[0].x = (480-strlen(message)*7)/2; // change for screenwidth in new code + vertices[1].x = vertices[0].x + strlen(message)*7; + vertices[0].y = 28*8; // change for screenheight in new code + vertices[1].y = vertices[0].y + 8; + vertices[0].z = 0; + vertices[1].z = 0; + sceGuDrawArray(GU_SPRITES,GU_TEXTURE_16BIT|GU_VERTEX_16BIT|GU_TRANSFORM_2D, 2,0,vertices); +} + +/* + * Mac VBL interrupt + */ + +void VideoInterrupt(void) +{ + SceCtrlData pad; + uint32 buttons; + static uint32 oldButtons = 0; + static uint32 qualifiers = 0; + static bool input_mode = false; + static bool show_menu = false; + static bool show_on_right = true; + static int frame_cnt = 0; + static char msgtxt[68] = { '\0' }; + uint32 fc = 0xFF000000; + uint32 bc = 0xFF8888FF; + + sceCtrlReadBufferPositive(&pad, 1); + buttons = pad.Buttons ^ oldButtons; // set if button changed + oldButtons = pad.Buttons; + + if (buttons & PSP_CTRL_START) + if (pad.Buttons & PSP_CTRL_START) + input_mode = input_mode ? false : true; // toggle input mode + if (!danzeff_isinitialized()) + input_mode = false; // danzeff not loaded + + if (buttons & PSP_CTRL_SELECT) + if (pad.Buttons & PSP_CTRL_SELECT) + show_menu = show_menu ? false : true; // toggle floppy/cdrom menu + if (input_mode) + show_menu = false; // select used for qualifiers in OSK + else + { + qualifiers = 0; // clear qualifiers when exit OSK + msgtxt[0] = 0; // clear onscreen message + } + + // refresh video + if (refresh_okay) + { + --frame_cnt; + if (frame_cnt < 0) + { + frame_cnt = frame_skip - 1; + if (psp_screen_d == VDEPTH_4BIT) + refresh4(the_buffer, 768/2, 0, 0, psp_screen_x, psp_screen_y, 0, 0, 480, 272); + else if (psp_screen_d == VDEPTH_8BIT) + refresh8(the_buffer, 768, 0, 0, psp_screen_x, psp_screen_y, 0, 0, 480, 272); + else if (psp_screen_d == VDEPTH_16BIT) + refresh15(the_buffer, 768*2, 0, 0, psp_screen_x, psp_screen_y, 0, 0, 480, 272); + else if (psp_screen_d == VDEPTH_32BIT) + refresh24(the_buffer, 768*4, 0, 0, psp_screen_x, psp_screen_y, 0, 0, 480, 272); + + if (input_mode) + { + danzeff_moveTo(show_on_right ? 480-150 : 0, 272-150); + danzeff_render(); + } + else if (show_menu) + handle_menu(pad, msgtxt); + + if (msgtxt[0] != 0) + show_msg(msgtxt, fc, bc); + + sceGuFinish(); + sceGuSync(0,0); + + //sceDisplayWaitVblankStart(); + sceGuSwapBuffers(); + } + + // process inputs + if (!input_mode && !show_menu) + { + // mouse + if (abs(pad.Lx - 128) >= 32 || abs(pad.Ly - 128) >= 32) + { + int dx = (pad.Lx - 128) >> 5; + int dy = (pad.Ly - 128) >> 5; + if (dx > 1) + dx--; + else if (dx < -1) + dx++; + if (dy > 1) + dy--; + else if (dy < -1) + dy++; + ADBMouseMoved(dx, dy); + } + if (buttons & PSP_CTRL_LTRIGGER) + { + if (pad.Buttons & PSP_CTRL_LTRIGGER) + ADBMouseDown(0); + else + ADBMouseUp(0); + } + if (buttons & PSP_CTRL_RTRIGGER) + { + if (pad.Buttons & PSP_CTRL_RTRIGGER) + ADBMouseDown(1); + else + ADBMouseUp(1); + } + + // keyboard + if (buttons & PSP_CTRL_UP) + { + if (pad.Buttons & PSP_CTRL_UP) + ADBKeyDown(0x3e); + else + ADBKeyUp(0x3e); + } + else if (buttons & PSP_CTRL_DOWN) + { + if (pad.Buttons & PSP_CTRL_DOWN) + ADBKeyDown(0x3d); + else + ADBKeyUp(0x3d); + } + if (buttons & PSP_CTRL_RIGHT) + { + if (pad.Buttons & PSP_CTRL_RIGHT) + ADBKeyDown(0x3c); + else + ADBKeyUp(0x3c); + } + else if (buttons & PSP_CTRL_LEFT) + { + if (pad.Buttons & PSP_CTRL_LEFT) + ADBKeyDown(0x3b); + else + ADBKeyUp(0x3b); + } + if (buttons & PSP_CTRL_CROSS) + { + if (pad.Buttons & PSP_CTRL_CROSS) + ADBKeyDown(0x4c); + else + ADBKeyUp(0x4c); + } + } + else if (input_mode) + { + unsigned int key; + uint8 xlate_danzeff_us[128] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 51, 0, 36, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 53, 0, 0, 0, 0, + 49, 128+18, 128+39, 128+20, 128+21, 128+23, 128+26, 39, + 128+25, 128+29, 128+28, 128+24, 43, 27, 47, 44, + 29, 18, 19, 20, 21, 23, 22, 26, + 28, 25, 128+41, 41, 128+43, 24, 128+47, 128+44, + 128+19, 128+0, 128+11, 128+8, 128+2, 128+14, 128+3, 128+5, + 128+4, 128+34, 128+38, 128+40, 128+37, 128+46, 128+45, 128+31, + 128+35, 128+12, 128+15, 128+1, 128+17, 128+32, 128+9, 128+13, + 128+7, 128+16, 128+6, 33, 42, 30, 128+22, 128+27, + 50, 0, 11, 8, 2, 14, 3, 5, + 4, 34, 38, 40, 37, 46, 45, 31, + 35, 12, 15, 1, 17, 32, 9, 13, + 7, 16, 6, 128+33, 128+42, 128+30, 128+50, 117 + }; + char qual_msg[5][12] = { + "\0", + " CMD ", + " OPT ", + " CTRL ", + " CMD+OPT " + }; + + if (buttons & PSP_CTRL_SELECT) + if (pad.Buttons & PSP_CTRL_SELECT) + qualifiers = (qualifiers + 1) % 5; + strcpy(msgtxt, qual_msg[qualifiers]); + + // danzeff input + key = danzeff_readInput(pad); + switch (qualifiers) + { + case 1: + ADBKeyDown(55); + break; + case 2: + ADBKeyDown(58); + break; + case 3: + ADBKeyDown(59); + break; + case 4: + ADBKeyDown(55); + ADBKeyDown(58); + } + switch (key) + { + case 0: // no input + break; + case 1: // move left + show_on_right = false; + break; + case 2: // move right + show_on_right = true; + break; + case 3: // select + break; + case 4: // start + break; + case 8: // backspace + ADBKeyDown(51); + ADBKeyUp(51); + break; + case 10: // enter + ADBKeyDown(36); + ADBKeyUp(36); + break; + default: // ascii character + if (xlate_danzeff_us[key] < 128) + { + ADBKeyDown(xlate_danzeff_us[key]); + ADBKeyUp(xlate_danzeff_us[key]); + } + else + { + ADBKeyDown(56); // shift + ADBKeyDown(xlate_danzeff_us[key]&127); + ADBKeyUp(xlate_danzeff_us[key]&127); + ADBKeyUp(56); + } + } + switch (qualifiers) + { + case 1: + ADBKeyUp(56); + break; + case 2: + ADBKeyUp(58); + break; + case 3: + ADBKeyUp(59); + break; + case 4: + ADBKeyUp(56); + ADBKeyUp(58); + } + } + + // Emergency quit requested? Then quit + if (emerg_quit) + QuitEmulator(); + + } + + sceKernelDelayThread(10); +} + + +/* + * Set interrupts enable + */ + +void PSP_monitor_desc::set_interrupts_enable(bool enable) +{ + psp_int_enable = enable; +} + + +/* + * Set palette + */ + +void PSP_monitor_desc::set_palette(uint8 *pal, int num_in) +{ + // Convert colors to CLUT + unsigned int *clut = (unsigned int *)(((unsigned int)clut256)|0x40000000); + for (int i = 0; i < 256; ++i) + *(clut++) = (0xFF << 24)|(pal[i*3 + 2] << 16)|(pal[i*3 + 1] << 8)|(pal[i*3]); +} + + +/* + * Switch video mode + */ + +void PSP_monitor_desc::switch_to_current_mode(void) +{ + // Close and reopen display + video_close(); + video_open(); + + if (drv == NULL) { + ErrorAlert(STR_OPEN_WINDOW_ERR); + QuitEmulator(); + } +} diff --git a/src/PSP2/xpram_psp.cpp b/src/PSP2/xpram_psp.cpp new file mode 100644 index 0000000..15bdf67 --- /dev/null +++ b/src/PSP2/xpram_psp.cpp @@ -0,0 +1,67 @@ +/* + * xpram_psp.cpp - XPRAM handling, PSP specific stuff + * + * Basilisk II (C) 1997-2005 Christian Bauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#include + +#include "sysdeps.h" +#include "xpram.h" + + +// XPRAM file name and path +const char XPRAM_FILE_NAME[] = "BasiliskII_XPRAM"; + + +/* + * Load XPRAM from settings file + */ + +void LoadXPRAM(void) +{ + int fd = sceIoOpen(XPRAM_FILE_NAME, SCE_O_RDONLY, 0777); + if (fd > 0) { + sceIoRead(fd, XPRAM, XPRAM_SIZE); + sceIoClose(fd); + } +} + + +/* + * Save XPRAM to settings file + */ + +void SaveXPRAM(void) +{ + int fd = sceIoOpen(XPRAM_FILE_NAME, SCE_O_CREAT | SCE_O_TRUNC | SCE_O_WRONLY, 0777); + if (fd > 0) { + sceIoWrite(fd, XPRAM, XPRAM_SIZE); + sceIoClose(fd); + } +} + + +/* + * Delete PRAM file + */ + +void ZapPRAM(void) +{ + sceIoRemove(XPRAM_FILE_NAME); +} diff --git a/src/ether.cpp b/src/ether.cpp index fdc4b19..399e357 100644 --- a/src/ether.cpp +++ b/src/ether.cpp @@ -33,7 +33,6 @@ #if SUPPORTS_UDP_TUNNEL #include #include -#include #include #include #include @@ -91,7 +90,7 @@ static map udp_protocols; void EtherInit(void) { - net_open = false; + /*net_open = false; udp_tunnel = false; #if SUPPORTS_UDP_TUNNEL @@ -166,7 +165,7 @@ void EtherInit(void) } else #endif if (ether_init()) - net_open = true; + net_open = true;*/ } @@ -226,7 +225,7 @@ static inline bool is_ethernet_broadcast(uint8 *p) int16 EtherOpen(uint32 pb, uint32 dce) { - D(bug("EtherOpen\n")); + /*D(bug("EtherOpen\n")); // Allocate driver data M68kRegisters r; @@ -259,7 +258,7 @@ int16 EtherOpen(uint32 pb, uint32 dce) WriteMacInt16(ether_data + ed_ReadPacket + 16, 0x4e75); // rts WriteMacInt16(ether_data + ed_ReadPacket + 18, M68K_EMUL_OP_ETHER_READ_PACKET); //2 WriteMacInt16(ether_data + ed_ReadPacket + 20, 0x4a43); // tst.w d3 - WriteMacInt16(ether_data + ed_ReadPacket + 22, 0x4e75); // rts + WriteMacInt16(ether_data + ed_ReadPacket + 22, 0x4e75); // rts*/ return 0; } @@ -270,7 +269,7 @@ int16 EtherOpen(uint32 pb, uint32 dce) int16 EtherControl(uint32 pb, uint32 dce) { - uint16 code = ReadMacInt16(pb + csCode); + /*uint16 code = ReadMacInt16(pb + csCode); D(bug("EtherControl %d\n", code)); switch (code) { case 1: // KillIO @@ -392,7 +391,8 @@ int16 EtherControl(uint32 pb, uint32 dce) default: printf("WARNING: Unknown EtherControl(%d)\n", code); return controlErr; - } + }*/ + return noErr; } @@ -419,7 +419,7 @@ void EtherReadPacket(uint32 &src, uint32 &dest, uint32 &len, uint32 &remaining) void ether_udp_read(uint32 packet, int length, struct sockaddr_in *from) { - // Drop packets sent by us + /*// Drop packets sent by us if (memcmp(Mac2HostAddr(packet) + 6, ether_addr, 6) == 0) return; @@ -454,7 +454,7 @@ void ether_udp_read(uint32 packet, int length, struct sockaddr_in *from) r.a[3] = ether_data + ed_RHA + 14; // Pointer behind header in RHA r.a[4] = ether_data + ed_ReadPacket; // Pointer to ReadPacket/ReadRest routines D(bug(" calling protocol handler %08x, type %08x, length %08x, data %08x, rha %08x, read_packet %08x\n", handler, r.d[0], r.d[1], r.a[0], r.a[3], r.a[4])); - Execute68k(handler, &r); + Execute68k(handler, &r);*/ } #endif diff --git a/src/extfs.cpp b/src/extfs.cpp index ac1a01a..7d85319 100644 --- a/src/extfs.cpp +++ b/src/extfs.cpp @@ -45,7 +45,6 @@ #ifndef WIN32 #include -#include #endif #if defined __APPLE__ && defined __MACH__ @@ -1196,7 +1195,9 @@ static int16 fs_get_vol(uint32 pb) // Set default volume (WDParam) static int16 fs_set_vol(uint32 pb, bool hfs, uint32 vcb) { - D(bug(" fs_set_vol(%08lx), vRefNum %d, name %.31s, dirID %d\n", pb, ReadMacInt16(pb + ioVRefNum), Mac2HostAddr(ReadMacInt32(pb + ioNamePtr) + 1), ReadMacInt32(pb + ioWDDirID))); + return fnfErr; + + /*D(bug(" fs_set_vol(%08lx), vRefNum %d, name %.31s, dirID %d\n", pb, ReadMacInt16(pb + ioVRefNum), Mac2HostAddr(ReadMacInt32(pb + ioNamePtr) + 1), ReadMacInt32(pb + ioWDDirID))); M68kRegisters r; // Determine parameters @@ -1246,13 +1247,14 @@ static int16 fs_set_vol(uint32 pb, bool hfs, uint32 vcb) r.d[2] = refNum; Execute68k(fs_data + fsSetDefaultVol, &r); D(bug(" UTSetDefaultVol() returned %d\n", r.d[0])); - return (int16)r.d[0]; + return (int16)r.d[0];*/ } // Query file attributes (HFileParam) static int16 fs_get_file_info(uint32 pb, bool hfs, uint32 dirID) { - D(bug(" fs_get_file_info(%08lx), vRefNum %d, name %.31s, idx %d, dirID %d\n", pb, ReadMacInt16(pb + ioVRefNum), Mac2HostAddr(ReadMacInt32(pb + ioNamePtr) + 1), ReadMacInt16(pb + ioFDirIndex), dirID)); + return fnfErr; + /*D(bug(" fs_get_file_info(%08lx), vRefNum %d, name %.31s, idx %d, dirID %d\n", pb, ReadMacInt16(pb + ioVRefNum), Mac2HostAddr(ReadMacInt32(pb + ioNamePtr) + 1), ReadMacInt16(pb + ioFDirIndex), dirID)); FSItem *fs_item; int16 dir_index = ReadMacInt16(pb + ioFDirIndex); @@ -1338,7 +1340,7 @@ static int16 fs_get_file_info(uint32 pb, bool hfs, uint32 dirID) WriteMacInt32(pb + ioFlParID, fs_item->parent_id); WriteMacInt32(pb + ioFlClpSiz, 0); } - return noErr; + return noErr;*/ } // Set file attributes (HFileParam) @@ -1369,7 +1371,9 @@ static int16 fs_set_file_info(uint32 pb, bool hfs, uint32 dirID) // Query file/directory attributes static int16 fs_get_cat_info(uint32 pb) { - D(bug(" fs_get_cat_info(%08lx), vRefNum %d, name %.31s, idx %d, dirID %d\n", pb, ReadMacInt16(pb + ioVRefNum), Mac2HostAddr(ReadMacInt32(pb + ioNamePtr) + 1), ReadMacInt16(pb + ioFDirIndex), ReadMacInt32(pb + ioDirID))); + return fnfErr; + + /*D(bug(" fs_get_cat_info(%08lx), vRefNum %d, name %.31s, idx %d, dirID %d\n", pb, ReadMacInt16(pb + ioVRefNum), Mac2HostAddr(ReadMacInt32(pb + ioNamePtr) + 1), ReadMacInt16(pb + ioFDirIndex), ReadMacInt32(pb + ioDirID))); FSItem *fs_item; int16 dir_index = ReadMacInt16(pb + ioFDirIndex); @@ -1492,7 +1496,7 @@ static int16 fs_get_cat_info(uint32 pb) WriteMacInt32(pb + ioFlRPyLen, (rf_size | (AL_BLK_SIZE - 1)) + 1); WriteMacInt32(pb + ioFlClpSiz, 0); } - return noErr; + return noErr;*/ } // Set file/directory attributes @@ -1964,7 +1968,7 @@ static int16 fs_create(uint32 pb, uint32 dirID) // Create directory static int16 fs_dir_create(uint32 pb) { - D(bug(" fs_dir_create(%08lx), vRefNum %d, name %.31s, dirID %d\n", pb, ReadMacInt16(pb + ioVRefNum), Mac2HostAddr(ReadMacInt32(pb + ioNamePtr) + 1), ReadMacInt32(pb + ioDirID))); + /*D(bug(" fs_dir_create(%08lx), vRefNum %d, name %.31s, dirID %d\n", pb, ReadMacInt16(pb + ioVRefNum), Mac2HostAddr(ReadMacInt32(pb + ioNamePtr) + 1), ReadMacInt32(pb + ioDirID))); // Find FSItem for given directory FSItem *fs_item; @@ -1983,6 +1987,7 @@ static int16 fs_dir_create(uint32 pb) WriteMacInt32(pb + ioDirID, fs_item->id); return noErr; } + */ } // Delete file/directory diff --git a/src/rom_patches.cpp b/src/rom_patches.cpp index 3111fb5..ce3fdd8 100644 --- a/src/rom_patches.cpp +++ b/src/rom_patches.cpp @@ -37,6 +37,11 @@ #define DEBUG 0 #include "debug.h" +#define ntohs __builtin_bswap16 +#define htons __builtin_bswap16 +#define ntohl __builtin_bswap32 +#define htonl __builtin_bswap32 + // Global variables uint32 UniversalInfo; // ROM offset of UniversalInfo diff --git a/src/rsrc_patches.cpp b/src/rsrc_patches.cpp index cdff157..a6caba1 100644 --- a/src/rsrc_patches.cpp +++ b/src/rsrc_patches.cpp @@ -37,6 +37,10 @@ #define DEBUG 0 #include "debug.h" +#define ntohs __builtin_bswap16 +#define htons __builtin_bswap16 +#define ntohl __builtin_bswap32 +#define htonl __builtin_bswap32 /* * Search resource for byte string, return offset (or 0) diff --git a/src/uae_cpu/newcpu.cpp b/src/uae_cpu/newcpu.cpp index 716986d..c6bbfeb 100644 --- a/src/uae_cpu/newcpu.cpp +++ b/src/uae_cpu/newcpu.cpp @@ -10,6 +10,7 @@ #include #include +#include #include "sysdeps.h" #include "cpu_emulation.h" @@ -90,7 +91,7 @@ void m68k_record_step(uaecptr pc) static void dump_log(void) { - FILE *f = fopen(log_filename(), "w"); + FILE *f = fopen("ux0:data/log.txt", "w"); if (f == NULL) return; for (int i = 0; i < LOG_SIZE; i++) { @@ -148,7 +149,7 @@ void dump_counts (void) unsigned long int total; int i; - write_log ("Writing instruction count file...\n"); + //write_log ("Writing instruction count file...\n"); for (i = 0; i < 65536; i++) { opcodenums[i] = i; total += instrcount[i]; @@ -260,7 +261,7 @@ void init_m68k (void) if (f) { uae_u32 opcode, count, total; char name[20]; - write_log ("Reading instruction count file...\n"); + //write_log ("Reading instruction count file...\n"); fscanf (f, "Total: %lu\n", &total); while (fscanf (f, "%lx: %lu %s\n", &opcode, &count, name) == 3) { instrcount[opcode] = count; @@ -273,7 +274,7 @@ void init_m68k (void) do_merges (); build_cpufunctbl (); - + #if defined(ENABLE_EXCLUSIVE_SPCFLAGS) && !defined(HAVE_HARDWARE_LOCKS) spcflags_lock = B2_create_mutex(); #endif @@ -782,7 +783,7 @@ void Exception(int nr, uaecptr oldpc) put_word (m68k_areg(regs, 7)+4, last_op_for_exception_3); put_long (m68k_areg(regs, 7)+8, last_addr_for_exception_3); } - write_log ("Exception!\n"); + //write_log ("Exception!\n"); goto kludge_me_do; } } @@ -1189,7 +1190,7 @@ void m68k_reset (void) regs.intmask = 7; regs.vbr = regs.sfc = regs.dfc = 0; fpu_reset(); - + #if FLIGHT_RECORDER log_ptr = 0; memset(log, 0, sizeof(log)); @@ -1248,7 +1249,7 @@ void REGPARAM2 op_illg (uae_u32 opcode) return; } - write_log ("Illegal instruction: %04x at %08lx\n", opcode, pc); + //write_log ("Illegal instruction: %04x at %08lx\n", opcode, pc); #if USE_JIT && JIT_DEBUG compiler_dumpstate(); #endif