#include "sysdeps.h" #include "hatari-glue.h" #include "maccess.h" #include "memory.h" #include "newcpu.h" #include "cputbl.h" #define CPUFUNC(x) x##_ff #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 unsigned long REGPARAM2 CPUFUNC(op_0_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_10_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_18_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_20_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_28_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_30_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_38_0)(uae_u32 opcode) /* OR */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_39_0)(uae_u32 opcode) /* OR */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_ilong(4); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_3c_0)(uae_u32 opcode) /* ORSR */ { { MakeSR(); { uae_s16 src = get_iword(2); src &= 0xFF; regs.sr |= src; MakeFromSR(); }}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_40_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_50_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_58_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_60_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_68_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_70_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_78_0)(uae_u32 opcode) /* OR */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_79_0)(uae_u32 opcode) /* OR */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_ilong(4); { uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_7c_0)(uae_u32 opcode) /* ORSR */ { {if (!regs.s) { Exception(8,0); goto endlabel18; } { MakeSR(); { uae_s16 src = get_iword(2); regs.sr |= src; MakeFromSR(); }}}m68k_incpc(4); endlabel18: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_80_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_90_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_98_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_a0_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_a8_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_b0_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 34; } unsigned long REGPARAM2 CPUFUNC(op_b8_0)(uae_u32 opcode) /* OR */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_b9_0)(uae_u32 opcode) /* OR */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_ilong(6); { uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(10); return 36; } unsigned long REGPARAM2 CPUFUNC(op_d0_0)(uae_u32 opcode) /* CHK2 */ { uae_u32 dstreg = opcode & 7; { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel27; } } }}}m68k_incpc(4); endlabel27: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_e8_0)(uae_u32 opcode) /* CHK2 */ { uae_u32 dstreg = opcode & 7; { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel28; } } }}}m68k_incpc(6); endlabel28: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_f0_0)(uae_u32 opcode) /* CHK2 */ { uae_u32 dstreg = opcode & 7; { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel29; } } }}}}endlabel29: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_f8_0)(uae_u32 opcode) /* CHK2 */ { { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel30; } } }}}m68k_incpc(6); endlabel30: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_f9_0)(uae_u32 opcode) /* CHK2 */ { { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel31; } } }}}m68k_incpc(8); endlabel31: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_fa_0)(uae_u32 opcode) /* CHK2 */ { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel32; } } }}}m68k_incpc(6); endlabel32: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_fb_0)(uae_u32 opcode) /* CHK2 */ { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel33; } } }}}}endlabel33: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_100_0)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_108_0)(uae_u32 opcode) /* MVPMR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_u16 val = (get_byte(memp) << 8) + get_byte(memp + 2); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); }}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_110_0)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_118_0)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_120_0)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_128_0)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_130_0)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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)); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_138_0)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_139_0)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_13a_0)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 2; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_getpc () + 2; dsta += (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_13b_0)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); 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)); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_13c_0)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = get_ibyte(2); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_140_0)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_dreg(regs, dstreg) = (dst); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_148_0)(uae_u32 opcode) /* MVPMR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_u32 val = (get_byte(memp) << 24) + (get_byte(memp + 2) << 16) + (get_byte(memp + 4) << 8) + get_byte(memp + 6); m68k_dreg(regs, dstreg) = (val); }}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_150_0)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_158_0)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_160_0)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_168_0)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_170_0)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_178_0)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_179_0)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_17a_0)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 2; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_getpc () + 2; dsta += (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_17b_0)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_180_0)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_dreg(regs, dstreg) = (dst); }}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_188_0)(uae_u32 opcode) /* MVPRM */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); put_byte(memp, src >> 8); put_byte(memp + 2, src); }}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_190_0)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_198_0)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_1a0_0)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_1a8_0)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_1b0_0)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_1b8_0)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_1b9_0)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_1ba_0)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 2; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_getpc () + 2; dsta += (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_1bb_0)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_1c0_0)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_dreg(regs, dstreg) = (dst); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_1c8_0)(uae_u32 opcode) /* MVPRM */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); put_byte(memp, src >> 24); put_byte(memp + 2, src >> 16); put_byte(memp + 4, src >> 8); put_byte(memp + 6, src); }}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_1d0_0)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_1d8_0)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_1e0_0)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_1e8_0)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_1f0_0)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_1f8_0)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_1f9_0)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_1fa_0)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 2; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_getpc () + 2; dsta += (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_1fb_0)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_200_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_210_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_218_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_220_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_228_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_230_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_238_0)(uae_u32 opcode) /* AND */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_239_0)(uae_u32 opcode) /* AND */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_ilong(4); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_23c_0)(uae_u32 opcode) /* ANDSR */ { { MakeSR(); { uae_s16 src = get_iword(2); src |= 0xFF00; regs.sr &= src; MakeFromSR(); }}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_240_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_250_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_258_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_260_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_268_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_270_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_278_0)(uae_u32 opcode) /* AND */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_279_0)(uae_u32 opcode) /* AND */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_ilong(4); { uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_27c_0)(uae_u32 opcode) /* ANDSR */ { {if (!regs.s) { Exception(8,0); goto endlabel96; } { MakeSR(); { uae_s16 src = get_iword(2); regs.sr &= src; MakeFromSR(); }}}m68k_incpc(4); endlabel96: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_280_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_290_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_298_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_2a0_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_2a8_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_2b0_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 34; } unsigned long REGPARAM2 CPUFUNC(op_2b8_0)(uae_u32 opcode) /* AND */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_2b9_0)(uae_u32 opcode) /* AND */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_ilong(6); { uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(10); return 36; } unsigned long REGPARAM2 CPUFUNC(op_2d0_0)(uae_u32 opcode) /* CHK2 */ { uae_u32 dstreg = opcode & 7; { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel105; } } }}}m68k_incpc(4); endlabel105: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_2e8_0)(uae_u32 opcode) /* CHK2 */ { uae_u32 dstreg = opcode & 7; { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel106; } } }}}m68k_incpc(6); endlabel106: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_2f0_0)(uae_u32 opcode) /* CHK2 */ { uae_u32 dstreg = opcode & 7; { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel107; } } }}}}endlabel107: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_2f8_0)(uae_u32 opcode) /* CHK2 */ { { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel108; } } }}}m68k_incpc(6); endlabel108: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_2f9_0)(uae_u32 opcode) /* CHK2 */ { { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel109; } } }}}m68k_incpc(8); endlabel109: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_2fa_0)(uae_u32 opcode) /* CHK2 */ { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel110; } } }}}m68k_incpc(6); endlabel110: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_2fb_0)(uae_u32 opcode) /* CHK2 */ { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel111; } } }}}}endlabel111: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_400_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_410_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_418_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_420_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_428_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_430_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_438_0)(uae_u32 opcode) /* SUB */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_439_0)(uae_u32 opcode) /* SUB */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_ilong(4); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_440_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_450_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_458_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_460_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_468_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_470_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_478_0)(uae_u32 opcode) /* SUB */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_479_0)(uae_u32 opcode) /* SUB */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_ilong(4); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_480_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_490_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_498_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_4a0_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_4a8_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_4b0_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 34; } unsigned long REGPARAM2 CPUFUNC(op_4b8_0)(uae_u32 opcode) /* SUB */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_4b9_0)(uae_u32 opcode) /* SUB */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_ilong(6); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(10); return 36; } unsigned long REGPARAM2 CPUFUNC(op_4d0_0)(uae_u32 opcode) /* CHK2 */ { uae_u32 dstreg = opcode & 7; { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel136; } } }}}m68k_incpc(4); endlabel136: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_4e8_0)(uae_u32 opcode) /* CHK2 */ { uae_u32 dstreg = opcode & 7; { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel137; } } }}}m68k_incpc(6); endlabel137: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4f0_0)(uae_u32 opcode) /* CHK2 */ { uae_u32 dstreg = opcode & 7; { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel138; } } }}}}endlabel138: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_4f8_0)(uae_u32 opcode) /* CHK2 */ { { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel139; } } }}}m68k_incpc(6); endlabel139: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4f9_0)(uae_u32 opcode) /* CHK2 */ { { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel140; } } }}}m68k_incpc(8); endlabel140: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4fa_0)(uae_u32 opcode) /* CHK2 */ { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel141; } } }}}m68k_incpc(6); endlabel141: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4fb_0)(uae_u32 opcode) /* CHK2 */ { 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 (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel142; } } }}}}endlabel142: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_600_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_610_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_618_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_620_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_628_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_630_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_638_0)(uae_u32 opcode) /* ADD */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_639_0)(uae_u32 opcode) /* ADD */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_ilong(4); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_640_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_650_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_658_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_660_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_668_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_670_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_678_0)(uae_u32 opcode) /* ADD */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_679_0)(uae_u32 opcode) /* ADD */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_ilong(4); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_680_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_690_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_698_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_6a0_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_6a8_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_6b0_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 34; } unsigned long REGPARAM2 CPUFUNC(op_6b8_0)(uae_u32 opcode) /* ADD */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_6b9_0)(uae_u32 opcode) /* ADD */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_ilong(6); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(10); return 36; } unsigned long REGPARAM2 CPUFUNC(op_6c0_0)(uae_u32 opcode) /* RTM */ { uae_u32 srcreg = (opcode & 7); {m68k_incpc(2); op_illg(opcode); }return 4; } unsigned long REGPARAM2 CPUFUNC(op_6c8_0)(uae_u32 opcode) /* RTM */ { uae_u32 srcreg = (opcode & 7); {m68k_incpc(2); op_illg(opcode); }return 4; } unsigned long REGPARAM2 CPUFUNC(op_6d0_0)(uae_u32 opcode) /* CALLM */ { uae_u32 srcreg = (opcode & 7); {m68k_incpc(2); op_illg(opcode); }return 4; } unsigned long REGPARAM2 CPUFUNC(op_6e8_0)(uae_u32 opcode) /* CALLM */ { uae_u32 srcreg = (opcode & 7); {m68k_incpc(2); op_illg(opcode); }return 4; } unsigned long REGPARAM2 CPUFUNC(op_6f0_0)(uae_u32 opcode) /* CALLM */ { uae_u32 srcreg = (opcode & 7); {m68k_incpc(2); op_illg(opcode); }return 4; } unsigned long REGPARAM2 CPUFUNC(op_6f8_0)(uae_u32 opcode) /* CALLM */ { {m68k_incpc(2); op_illg(opcode); }return 4; } unsigned long REGPARAM2 CPUFUNC(op_6f9_0)(uae_u32 opcode) /* CALLM */ { {m68k_incpc(2); op_illg(opcode); }return 4; } unsigned long REGPARAM2 CPUFUNC(op_6fa_0)(uae_u32 opcode) /* CALLM */ { {m68k_incpc(2); op_illg(opcode); }return 4; } unsigned long REGPARAM2 CPUFUNC(op_6fb_0)(uae_u32 opcode) /* CALLM */ { {m68k_incpc(2); op_illg(opcode); }return 4; } unsigned long REGPARAM2 CPUFUNC(op_800_0)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}m68k_incpc(4); return 10; } unsigned long REGPARAM2 CPUFUNC(op_810_0)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_818_0)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_820_0)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_828_0)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_830_0)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ 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)); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_838_0)(uae_u32 opcode) /* BTST */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_839_0)(uae_u32 opcode) /* BTST */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_ilong(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(8); return 20; } unsigned long REGPARAM2 CPUFUNC(op_83a_0)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = 2; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_83b_0)(uae_u32 opcode) /* BTST */ { 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)); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_83c_0)(uae_u32 opcode) /* BTST */ { {{ uae_s16 src = get_iword(2); { uae_s8 dst = get_ibyte(4); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}m68k_incpc(6); return 12; } unsigned long REGPARAM2 CPUFUNC(op_840_0)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_dreg(regs, dstreg) = (dst); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_850_0)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_858_0)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_860_0)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_868_0)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_870_0)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_878_0)(uae_u32 opcode) /* BCHG */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_879_0)(uae_u32 opcode) /* BCHG */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_ilong(4); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_87a_0)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = 2; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_87b_0)(uae_u32 opcode) /* BCHG */ { 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_880_0)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_dreg(regs, dstreg) = (dst); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_890_0)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_898_0)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_8a0_0)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_8a8_0)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_8b0_0)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_8b8_0)(uae_u32 opcode) /* BCLR */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_8b9_0)(uae_u32 opcode) /* BCLR */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_ilong(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_8ba_0)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = 2; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_8bb_0)(uae_u32 opcode) /* BCLR */ { 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_8c0_0)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_dreg(regs, dstreg) = (dst); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8d0_0)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_8d8_0)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_8e0_0)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_8e8_0)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_8f0_0)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_8f8_0)(uae_u32 opcode) /* BSET */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_8f9_0)(uae_u32 opcode) /* BSET */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_ilong(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_8fa_0)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = 2; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_8fb_0)(uae_u32 opcode) /* BSET */ { 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_a00_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uae_s8 dst = m68k_dreg(regs, dstreg); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_a10_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_a18_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_a20_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_a28_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_a30_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_a38_0)(uae_u32 opcode) /* EOR */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_a39_0)(uae_u32 opcode) /* EOR */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_ilong(4); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_a3c_0)(uae_u32 opcode) /* EORSR */ { { MakeSR(); { uae_s16 src = get_iword(2); src &= 0xFF; regs.sr ^= src; MakeFromSR(); }}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_a40_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_a50_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_a58_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_a60_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_a68_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_a70_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_a78_0)(uae_u32 opcode) /* EOR */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_a79_0)(uae_u32 opcode) /* EOR */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_ilong(4); { uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(8); return 24; } #endif #ifdef PART_2 unsigned long REGPARAM2 CPUFUNC(op_a7c_0)(uae_u32 opcode) /* EORSR */ { {if (!regs.s) { Exception(8,0); goto endlabel234; } { MakeSR(); { uae_s16 src = get_iword(2); regs.sr ^= src; MakeFromSR(); }}}m68k_incpc(4); endlabel234: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_a80_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_a90_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_a98_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_aa0_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_aa8_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_ab0_0)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 34; } unsigned long REGPARAM2 CPUFUNC(op_ab8_0)(uae_u32 opcode) /* EOR */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_ab9_0)(uae_u32 opcode) /* EOR */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_ilong(6); { uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(10); return 36; } unsigned long REGPARAM2 CPUFUNC(op_ad0_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ 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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_ad8_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; { 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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_ae0_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; { 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); return 18; } unsigned long REGPARAM2 CPUFUNC(op_ae8_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); { 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); return 20; } unsigned long REGPARAM2 CPUFUNC(op_af0_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ 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; }}}}}}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_af8_0)(uae_u32 opcode) /* CAS */ { {{ 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); return 20; } unsigned long REGPARAM2 CPUFUNC(op_af9_0)(uae_u32 opcode) /* CAS */ { {{ 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); return 24; } unsigned long REGPARAM2 CPUFUNC(op_c00_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c10_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c18_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c20_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c28_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c30_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_c38_0)(uae_u32 opcode) /* CMP */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c39_0)(uae_u32 opcode) /* CMP */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_ilong(4); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(8); return 20; } unsigned long REGPARAM2 CPUFUNC(op_c3a_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 2; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword(4); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c3b_0)(uae_u32 opcode) /* CMP */ { 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_c40_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c50_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c58_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c60_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c68_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c70_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_c78_0)(uae_u32 opcode) /* CMP */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c79_0)(uae_u32 opcode) /* CMP */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_ilong(4); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(8); return 20; } unsigned long REGPARAM2 CPUFUNC(op_c7a_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 2; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c7b_0)(uae_u32 opcode) /* CMP */ { 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_c80_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(6); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c90_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_c98_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_ca0_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_ca8_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_cb0_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_cb8_0)(uae_u32 opcode) /* CMP */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_cb9_0)(uae_u32 opcode) /* CMP */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_ilong(6); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(10); return 28; } unsigned long REGPARAM2 CPUFUNC(op_cba_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 2; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_getpc () + 6; dsta += (uae_s32)(uae_s16)get_iword(6); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_cbb_0)(uae_u32 opcode) /* CMP */ { 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); }}}}}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_cd0_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ 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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_cd8_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; { 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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_ce0_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; { 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); return 18; } unsigned long REGPARAM2 CPUFUNC(op_ce8_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_s16 dst = get_word(dsta); { 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); return 20; } unsigned long REGPARAM2 CPUFUNC(op_cf0_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ 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; }}}}}}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_cf8_0)(uae_u32 opcode) /* CAS */ { {{ 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); return 20; } unsigned long REGPARAM2 CPUFUNC(op_cf9_0)(uae_u32 opcode) /* CAS */ { {{ 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); return 24; } unsigned long REGPARAM2 CPUFUNC(op_cfc_0)(uae_u32 opcode) /* CAS2 */ { {{ 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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e10_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e18_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e20_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_e28_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_e30_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_e38_0)(uae_u32 opcode) /* MOVES */ { {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: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_e39_0)(uae_u32 opcode) /* MOVES */ { {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: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_e50_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e58_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e60_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_e68_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_e70_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_e78_0)(uae_u32 opcode) /* MOVES */ { {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: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_e79_0)(uae_u32 opcode) /* MOVES */ { {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: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_e90_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_e98_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_ea0_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_ea8_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_eb0_0)(uae_u32 opcode) /* MOVES */ { uae_u32 dstreg = opcode & 7; {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: ; return 36; } unsigned long REGPARAM2 CPUFUNC(op_eb8_0)(uae_u32 opcode) /* MOVES */ { {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: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_eb9_0)(uae_u32 opcode) /* MOVES */ { {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: ; return 40; } unsigned long REGPARAM2 CPUFUNC(op_ed0_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ 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); return 24; } unsigned long REGPARAM2 CPUFUNC(op_ed8_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ 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); return 24; } unsigned long REGPARAM2 CPUFUNC(op_ee0_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ 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); return 26; } unsigned long REGPARAM2 CPUFUNC(op_ee8_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); { uae_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); return 28; } unsigned long REGPARAM2 CPUFUNC(op_ef0_0)(uae_u32 opcode) /* CAS */ { uae_u32 dstreg = opcode & 7; {{ 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; }}}}}}}}}return 30; } unsigned long REGPARAM2 CPUFUNC(op_ef8_0)(uae_u32 opcode) /* CAS */ { {{ 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); return 28; } unsigned long REGPARAM2 CPUFUNC(op_ef9_0)(uae_u32 opcode) /* CAS */ { {{ 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); return 32; } unsigned long REGPARAM2 CPUFUNC(op_efc_0)(uae_u32 opcode) /* CAS2 */ { {{ 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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_1000_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_1010_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_1018_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_1020_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_1028_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_1030_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_1038_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_1039_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_103a_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_103b_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_103c_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte(2); { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_1080_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_1090_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_1098_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_10a0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_10a8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_10b0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_10b8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_10b9_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_10ba_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_10bb_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_10bc_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_10c0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_10d0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_10d8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_10e0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_10e8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_10f0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_10f8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_10f9_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_10fa_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_10fb_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_10fc_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_1100_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_1110_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_1118_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_1120_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_1128_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_1130_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_1138_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_1139_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_113a_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_113b_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_113c_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_1140_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_1150_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_1158_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_1160_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_1168_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_1170_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); return 22; } unsigned long REGPARAM2 CPUFUNC(op_1178_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_1179_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_117a_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_117b_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); return 22; } unsigned long REGPARAM2 CPUFUNC(op_117c_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_1180_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ 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); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_1190_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); {m68k_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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_1198_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; {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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_11a0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; {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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_11a8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); {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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_11b0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_11b8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); {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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_11b9_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ 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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_11ba_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); {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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_11bb_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_11bc_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ 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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_11c0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_11d0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_11d8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_11e0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_11e8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_11f0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{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); return 22; } unsigned long REGPARAM2 CPUFUNC(op_11f8_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_11f9_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_11fa_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_11fb_0)(uae_u32 opcode) /* MOVE */ { {{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); return 22; } unsigned long REGPARAM2 CPUFUNC(op_11fc_0)(uae_u32 opcode) /* MOVE */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_13c0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_13d0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_13d8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_13e0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_13e8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_13f0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{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); return 26; } unsigned long REGPARAM2 CPUFUNC(op_13f8_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_13f9_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong(6); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(10); return 28; } unsigned long REGPARAM2 CPUFUNC(op_13fa_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_13fb_0)(uae_u32 opcode) /* MOVE */ { {{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); return 26; } unsigned long REGPARAM2 CPUFUNC(op_13fc_0)(uae_u32 opcode) /* MOVE */ { {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(8); return 20; } unsigned long REGPARAM2 CPUFUNC(op_2000_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_2008_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_2010_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_2018_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_2020_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_2028_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_2030_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_2038_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_2039_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_203a_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_203b_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_203c_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(6); return 12; } unsigned long REGPARAM2 CPUFUNC(op_2040_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_2048_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_2050_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_2058_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_2060_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_2068_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_2070_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_2078_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_2079_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_207a_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_207b_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_207c_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(6); return 12; } unsigned long REGPARAM2 CPUFUNC(op_2080_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_2088_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_2090_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_2098_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_20a0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_20a8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_20b0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_20b8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_20b9_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_20ba_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_20bb_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_20bc_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_20c0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_20c8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_20d0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_20d8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_20e0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_20e8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_20f0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_20f8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_20f9_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_20fa_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_20fb_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_20fc_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_2100_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_2108_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_2110_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_2118_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = m68k_areg(regs, dstreg) - 4; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_2120_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { 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); return 24; } unsigned long REGPARAM2 CPUFUNC(op_2128_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_2130_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 28; } unsigned long REGPARAM2 CPUFUNC(op_2138_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_2139_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_213a_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_213b_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 28; } unsigned long REGPARAM2 CPUFUNC(op_213c_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_2140_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_2148_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(4); return 16; } #endif #ifdef PART_3 unsigned long REGPARAM2 CPUFUNC(op_2150_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_2158_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_2160_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_2168_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_2170_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); return 30; } unsigned long REGPARAM2 CPUFUNC(op_2178_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_2179_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_217a_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_217b_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); return 30; } unsigned long REGPARAM2 CPUFUNC(op_217c_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_2180_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ 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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_2188_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ 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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_2190_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); {m68k_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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_2198_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; {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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_21a0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; {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); }}}}}return 28; } unsigned long REGPARAM2 CPUFUNC(op_21a8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); {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); }}}}}return 30; } unsigned long REGPARAM2 CPUFUNC(op_21b0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 32; } unsigned long REGPARAM2 CPUFUNC(op_21b8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); {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); }}}}}return 30; } unsigned long REGPARAM2 CPUFUNC(op_21b9_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ 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); }}}}}return 34; } unsigned long REGPARAM2 CPUFUNC(op_21ba_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); {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); }}}}}return 30; } unsigned long REGPARAM2 CPUFUNC(op_21bb_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 32; } unsigned long REGPARAM2 CPUFUNC(op_21bc_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ 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); }}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_21c0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_21c8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_21d0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_21d8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_21e0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_21e8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_21f0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{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); return 30; } unsigned long REGPARAM2 CPUFUNC(op_21f8_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_21f9_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_21fa_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_21fb_0)(uae_u32 opcode) /* MOVE */ { {{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); return 30; } unsigned long REGPARAM2 CPUFUNC(op_21fc_0)(uae_u32 opcode) /* MOVE */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_23c0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_23c8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_23d0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_23d8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_23e0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_23e8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_23f0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{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); return 34; } unsigned long REGPARAM2 CPUFUNC(op_23f8_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_23f9_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong(6); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(10); return 36; } unsigned long REGPARAM2 CPUFUNC(op_23fa_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 32; } unsigned long REGPARAM2 CPUFUNC(op_23fb_0)(uae_u32 opcode) /* MOVE */ { {{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); return 34; } unsigned long REGPARAM2 CPUFUNC(op_23fc_0)(uae_u32 opcode) /* MOVE */ { {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_ilong(6); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(10); return 28; } unsigned long REGPARAM2 CPUFUNC(op_3000_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_3008_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_3010_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_3018_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_3020_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_3028_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_3030_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_3038_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_3039_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_303a_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_303b_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_303c_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_3040_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_3048_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_3050_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_3058_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_3060_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_3068_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_3070_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_3078_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_3079_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_307a_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_307b_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_307c_0)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_3080_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_3088_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_3090_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_3098_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_30a0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_30a8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_30b0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_30b8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_30b9_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_30ba_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_30bb_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_30bc_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_30c0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_30c8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_30d0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_30d8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_30e0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_30e8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_30f0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_30f8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_30f9_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_30fa_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_30fb_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_30fc_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_3100_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_3108_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_3110_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_3118_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = m68k_areg(regs, dstreg) - 2; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_3120_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { 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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_3128_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_3130_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_3138_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_3139_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_313a_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_313b_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_313c_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_3140_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_3148_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_3150_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_3158_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_3160_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_3168_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_3170_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); return 22; } unsigned long REGPARAM2 CPUFUNC(op_3178_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_3179_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_317a_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_317b_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); return 22; } unsigned long REGPARAM2 CPUFUNC(op_317c_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_3180_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ 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); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_3188_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ 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); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_3190_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); {m68k_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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_3198_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; {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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_31a0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; {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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_31a8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); {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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_31b0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_31b8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); {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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_31b9_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ 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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_31ba_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); {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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_31bb_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_31bc_0)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ 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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_31c0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_31c8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_31d0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_31d8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_31e0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_31e8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_31f0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{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); return 22; } unsigned long REGPARAM2 CPUFUNC(op_31f8_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_31f9_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_31fa_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_31fb_0)(uae_u32 opcode) /* MOVE */ { {{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); return 22; } unsigned long REGPARAM2 CPUFUNC(op_31fc_0)(uae_u32 opcode) /* MOVE */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_33c0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_33c8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_33d0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_33d8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_33e0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_33e8_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_33f0_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{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); return 26; } unsigned long REGPARAM2 CPUFUNC(op_33f8_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_33f9_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong(6); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(10); return 28; } unsigned long REGPARAM2 CPUFUNC(op_33fa_0)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(8); return 24; } unsigned long REGPARAM2 CPUFUNC(op_33fb_0)(uae_u32 opcode) /* MOVE */ { {{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); return 26; } unsigned long REGPARAM2 CPUFUNC(op_33fc_0)(uae_u32 opcode) /* MOVE */ { {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(8); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4000_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff); }}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4010_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); put_byte(srca,newv); }}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4018_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); put_byte(srca,newv); }}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4020_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); put_byte(srca,newv); }}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4028_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); put_byte(srca,newv); }}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4030_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4038_0)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); put_byte(srca,newv); }}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4039_0)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); put_byte(srca,newv); }}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4040_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((newv) & 0xffff); }}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4050_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); put_word(srca,newv); }}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4058_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); put_word(srca,newv); }}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4060_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); put_word(srca,newv); }}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4068_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); put_word(srca,newv); }}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4070_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4078_0)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); put_word(srca,newv); }}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4079_0)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); put_word(srca,newv); }}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4080_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, srcreg) = (newv); }}}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_4090_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); put_long(srca,newv); }}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4098_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); put_long(srca,newv); }}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_40a0_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); put_long(srca,newv); }}}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_40a8_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); put_long(srca,newv); }}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_40b0_0)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_40b8_0)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); put_long(srca,newv); }}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_40b9_0)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); put_long(srca,newv); }}}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_40c0_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {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: ; return 6; } unsigned long REGPARAM2 CPUFUNC(op_40d0_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel646; } {{ uaecptr srca = m68k_areg(regs, srcreg); MakeSR(); put_word(srca,regs.sr); }}}m68k_incpc(2); endlabel646: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_40d8_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {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: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_40e0_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {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: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_40e8_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {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: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_40f0_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {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: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_40f8_0)(uae_u32 opcode) /* MVSR2 */ { {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: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_40f9_0)(uae_u32 opcode) /* MVSR2 */ { {if (!regs.s) { Exception(8,0); goto endlabel652; } {{ uaecptr srca = get_ilong(2); MakeSR(); put_word(srca,regs.sr); }}}m68k_incpc(6); endlabel652: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4100_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel653; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel653; } }}}m68k_incpc(2); endlabel653: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_4110_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel654; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel654; } }}}}m68k_incpc(2); endlabel654: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4118_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel655; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel655; } }}}}m68k_incpc(2); endlabel655: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4120_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { 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: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4128_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel657; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel657; } }}}}m68k_incpc(4); endlabel657: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_4130_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { 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: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_4138_0)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel659; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel659; } }}}}m68k_incpc(4); endlabel659: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_4139_0)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel660; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel660; } }}}}m68k_incpc(6); endlabel660: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_413a_0)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel661; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel661; } }}}}m68k_incpc(4); endlabel661: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_413b_0)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { 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: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_413c_0)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel663; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel663; } }}}m68k_incpc(6); endlabel663: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4180_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel664; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel664; } }}}m68k_incpc(2); endlabel664: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_4190_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel665; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel665; } }}}}m68k_incpc(2); endlabel665: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_4198_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel666; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel666; } }}}}m68k_incpc(2); endlabel666: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_41a0_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { 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: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_41a8_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel668; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel668; } }}}}m68k_incpc(4); endlabel668: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_41b0_0)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { 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: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_41b8_0)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel670; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel670; } }}}}m68k_incpc(4); endlabel670: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_41b9_0)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel671; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel671; } }}}}m68k_incpc(6); endlabel671: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_41ba_0)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel672; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel672; } }}}}m68k_incpc(4); endlabel672: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_41bb_0)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { 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: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_41bc_0)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel674; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel674; } }}}m68k_incpc(4); endlabel674: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_41d0_0)(uae_u32 opcode) /* LEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_41e8_0)(uae_u32 opcode) /* LEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_41f0_0)(uae_u32 opcode) /* LEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{m68k_incpc(2); { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); { m68k_areg(regs, dstreg) = (srca); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_41f8_0)(uae_u32 opcode) /* LEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_41f9_0)(uae_u32 opcode) /* LEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(6); return 12; } unsigned long REGPARAM2 CPUFUNC(op_41fa_0)(uae_u32 opcode) /* LEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_41fb_0)(uae_u32 opcode) /* LEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{m68k_incpc(2); { uaecptr tmppc = m68k_getpc(); uaecptr srca = get_disp_ea_020(tmppc, next_iword()); { m68k_areg(regs, dstreg) = (srca); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4200_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((0) & 0xff); }}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4210_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); put_byte(srca,0); }}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4218_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); put_byte(srca,0); }}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4220_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4228_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); put_byte(srca,0); }}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4230_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{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); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4238_0)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); put_byte(srca,0); }}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4239_0)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); put_byte(srca,0); }}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4240_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((0) & 0xffff); }}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4250_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); put_word(srca,0); }}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4258_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); put_word(srca,0); }}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4260_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4268_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); put_word(srca,0); }}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4270_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{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); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4278_0)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); put_word(srca,0); }}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4279_0)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); put_word(srca,0); }}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4280_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); m68k_dreg(regs, srcreg) = (0); }}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_4290_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); put_long(srca,0); }}m68k_incpc(2); return 20; } #endif #ifdef PART_4 unsigned long REGPARAM2 CPUFUNC(op_4298_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); put_long(srca,0); }}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_42a0_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 22; } unsigned long REGPARAM2 CPUFUNC(op_42a8_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); put_long(srca,0); }}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_42b0_0)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{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); }}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_42b8_0)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); put_long(srca,0); }}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_42b9_0)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); put_long(srca,0); }}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_42c0_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ MakeSR(); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr & 0xff) & 0xffff); }}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_42d0_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); MakeSR(); put_word(srca,regs.sr & 0xff); }}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_42d8_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += 2; MakeSR(); put_word(srca,regs.sr & 0xff); }}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_42e0_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; m68k_areg (regs, srcreg) = srca; MakeSR(); put_word(srca,regs.sr & 0xff); }}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_42e8_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); MakeSR(); put_word(srca,regs.sr & 0xff); }}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_42f0_0)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{m68k_incpc(2); { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); MakeSR(); put_word(srca,regs.sr & 0xff); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_42f8_0)(uae_u32 opcode) /* MVSR2 */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); MakeSR(); put_word(srca,regs.sr & 0xff); }}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_42f9_0)(uae_u32 opcode) /* MVSR2 */ { {{ uaecptr srca = get_ilong(2); MakeSR(); put_word(srca,regs.sr & 0xff); }}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4400_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(dst)) < 0; SET_ZFLG (((uae_s8)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff); }}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4410_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(dst)) < 0; SET_ZFLG (((uae_s8)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(srca,dst); }}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4418_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(dst)) < 0; SET_ZFLG (((uae_s8)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(srca,dst); }}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4420_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(dst)) < 0; SET_ZFLG (((uae_s8)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(srca,dst); }}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4428_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(dst)) < 0; SET_ZFLG (((uae_s8)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(srca,dst); }}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4430_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4438_0)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(dst)) < 0; SET_ZFLG (((uae_s8)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(srca,dst); }}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4439_0)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(dst)) < 0; SET_ZFLG (((uae_s8)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(srca,dst); }}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4440_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(dst)) < 0; SET_ZFLG (((uae_s16)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); }}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4450_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(dst)) < 0; SET_ZFLG (((uae_s16)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(srca,dst); }}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4458_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(dst)) < 0; SET_ZFLG (((uae_s16)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(srca,dst); }}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4460_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(dst)) < 0; SET_ZFLG (((uae_s16)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(srca,dst); }}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4468_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(dst)) < 0; SET_ZFLG (((uae_s16)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(srca,dst); }}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4470_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4478_0)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(dst)) < 0; SET_ZFLG (((uae_s16)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(srca,dst); }}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4479_0)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(dst)) < 0; SET_ZFLG (((uae_s16)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(srca,dst); }}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4480_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(dst)) < 0; SET_ZFLG (((uae_s32)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, srcreg) = (dst); }}}}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_4490_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(dst)) < 0; SET_ZFLG (((uae_s32)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(srca,dst); }}}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4498_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(dst)) < 0; SET_ZFLG (((uae_s32)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(srca,dst); }}}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_44a0_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(dst)) < 0; SET_ZFLG (((uae_s32)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(srca,dst); }}}}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_44a8_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(dst)) < 0; SET_ZFLG (((uae_s32)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(srca,dst); }}}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_44b0_0)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_44b8_0)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(dst)) < 0; SET_ZFLG (((uae_s32)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(srca,dst); }}}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_44b9_0)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(dst)) < 0; SET_ZFLG (((uae_s32)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(srca,dst); }}}}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_44c0_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_44d0_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}m68k_incpc(2); return 16; } unsigned long REGPARAM2 CPUFUNC(op_44d8_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}m68k_incpc(2); return 16; } unsigned long REGPARAM2 CPUFUNC(op_44e0_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}m68k_incpc(2); return 18; } unsigned long REGPARAM2 CPUFUNC(op_44e8_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_44f0_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{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(); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_44f8_0)(uae_u32 opcode) /* MV2SR */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_44f9_0)(uae_u32 opcode) /* MV2SR */ { {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}m68k_incpc(6); return 24; } unsigned long REGPARAM2 CPUFUNC(op_44fa_0)(uae_u32 opcode) /* MV2SR */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_44fb_0)(uae_u32 opcode) /* MV2SR */ { {{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(); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_44fc_0)(uae_u32 opcode) /* MV2SR */ { {{ uae_s16 src = get_iword(2); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4600_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4610_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); put_byte(srca,dst); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4618_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); put_byte(srca,dst); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4620_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); put_byte(srca,dst); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4628_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); put_byte(srca,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4630_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4638_0)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); put_byte(srca,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4639_0)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); put_byte(srca,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4640_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4650_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); put_word(srca,dst); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4658_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); put_word(srca,dst); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4660_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); put_word(srca,dst); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4668_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); put_word(srca,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4670_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4678_0)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); put_word(srca,dst); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4679_0)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); put_word(srca,dst); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4680_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_dreg(regs, srcreg) = (dst); }}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_4690_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); put_long(srca,dst); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4698_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); put_long(srca,dst); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_46a0_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); put_long(srca,dst); }}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_46a8_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); put_long(srca,dst); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_46b0_0)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_46b8_0)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); put_long(srca,dst); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_46b9_0)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); put_long(srca,dst); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_46c0_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel773; } {{ uae_s16 src = m68k_dreg(regs, srcreg); regs.sr = src; MakeFromSR(); }}}m68k_incpc(2); endlabel773: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_46d0_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {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: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_46d8_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {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: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_46e0_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {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: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_46e8_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {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: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_46f0_0)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {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: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_46f8_0)(uae_u32 opcode) /* MV2SR */ { {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: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_46f9_0)(uae_u32 opcode) /* MV2SR */ { {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: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_46fa_0)(uae_u32 opcode) /* MV2SR */ { {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: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_46fb_0)(uae_u32 opcode) /* MV2SR */ { {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: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_46fc_0)(uae_u32 opcode) /* MV2SR */ { {if (!regs.s) { Exception(8,0); goto endlabel783; } {{ uae_s16 src = get_iword(2); regs.sr = src; MakeFromSR(); }}}m68k_incpc(4); endlabel783: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4800_0)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = - (src & 0xF0); uae_u16 newv; int cflg; if (newv_lo > 9) { newv_lo -= 6; } newv = 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); return 6; } unsigned long REGPARAM2 CPUFUNC(op_4808_0)(uae_u32 opcode) /* LINK */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 22; } unsigned long REGPARAM2 CPUFUNC(op_4810_0)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = - (src & 0xF0); uae_u16 newv; int cflg; if (newv_lo > 9) { newv_lo -= 6; } newv = 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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4818_0)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = - (src & 0xF0); uae_u16 newv; int cflg; if (newv_lo > 9) { newv_lo -= 6; } newv = 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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4820_0)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4828_0)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = - (src & 0xF0); uae_u16 newv; int cflg; if (newv_lo > 9) { newv_lo -= 6; } newv = 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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4830_0)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4838_0)(uae_u32 opcode) /* NBCD */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = - (src & 0xF0); uae_u16 newv; int cflg; if (newv_lo > 9) { newv_lo -= 6; } newv = 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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4839_0)(uae_u32 opcode) /* NBCD */ { {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = - (src & 0xF0); uae_u16 newv; int cflg; if (newv_lo > 9) { newv_lo -= 6; } newv = 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); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4840_0)(uae_u32 opcode) /* SWAP */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_dreg(regs, srcreg) = (dst); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4848_0)(uae_u32 opcode) /* BKPT */ { uae_u32 srcreg = (opcode & 7); {m68k_incpc(2); op_illg(opcode); }return 4; } unsigned long REGPARAM2 CPUFUNC(op_4850_0)(uae_u32 opcode) /* PEA */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, 7) - 4; m68k_areg (regs, 7) = dsta; put_long(dsta,srca); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4868_0)(uae_u32 opcode) /* PEA */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uaecptr dsta = m68k_areg(regs, 7) - 4; m68k_areg (regs, 7) = dsta; put_long(dsta,srca); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4870_0)(uae_u32 opcode) /* PEA */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4878_0)(uae_u32 opcode) /* PEA */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uaecptr dsta = m68k_areg(regs, 7) - 4; m68k_areg (regs, 7) = dsta; put_long(dsta,srca); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4879_0)(uae_u32 opcode) /* PEA */ { {{ uaecptr srca = get_ilong(2); { uaecptr dsta = m68k_areg(regs, 7) - 4; m68k_areg (regs, 7) = dsta; put_long(dsta,srca); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_487a_0)(uae_u32 opcode) /* PEA */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uaecptr dsta = m68k_areg(regs, 7) - 4; m68k_areg (regs, 7) = dsta; put_long(dsta,srca); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_487b_0)(uae_u32 opcode) /* PEA */ { {{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); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4880_0)(uae_u32 opcode) /* EXT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u16 dst = (uae_s16)(uae_s8)src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4890_0)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=4; } while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(4); return (8+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48a0_0)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=4; } while (dmask) { srca -= 2; put_word(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; retcycles+=4; } m68k_areg(regs, dstreg) = srca; }}}m68k_incpc(4); return (8+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48a8_0)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=4; } while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(6); return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48b0_0)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; {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]; retcycles+=4; } while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}} return (14+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48b8_0)(uae_u32 opcode) /* MVMLE */ { unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=4; } while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(6); return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48b9_0)(uae_u32 opcode) /* MVMLE */ { unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=4; } while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(8); return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48c0_0)(uae_u32 opcode) /* EXT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 dst = (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_dreg(regs, srcreg) = (dst); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_48d0_0)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=8; } while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(4); return (8+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48e0_0)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=8; } while (dmask) { srca -= 4; put_long(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; retcycles+=8; } m68k_areg(regs, dstreg) = srca; }}}m68k_incpc(4); return (8+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48e8_0)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=8; } while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(6); return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48f0_0)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; {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]; retcycles+=8; } while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}} return (14+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48f8_0)(uae_u32 opcode) /* MVMLE */ { unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=8; } while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(6); return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48f9_0)(uae_u32 opcode) /* MVMLE */ { unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=8; } while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(8); return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_49c0_0)(uae_u32 opcode) /* EXT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 dst = (uae_s32)(uae_s8)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_dreg(regs, srcreg) = (dst); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a00_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a10_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a18_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a20_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_4a28_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a30_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4a38_0)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a39_0)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4a3a_0)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a3b_0)(uae_u32 opcode) /* TST */ { {{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); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4a3c_0)(uae_u32 opcode) /* TST */ { {{ uae_s8 src = get_ibyte(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a40_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a48_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_areg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a50_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a58_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a60_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_4a68_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a70_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4a78_0)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a79_0)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4a7a_0)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a7b_0)(uae_u32 opcode) /* TST */ { {{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); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4a7c_0)(uae_u32 opcode) /* TST */ { {{ uae_s16 src = get_iword(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a80_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a88_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_areg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a90_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a98_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4aa0_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4aa8_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4ab0_0)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4ab8_0)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4ab9_0)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4aba_0)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4abb_0)(uae_u32 opcode) /* TST */ { {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4abc_0)(uae_u32 opcode) /* TST */ { {{ uae_s32 src = get_ilong(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}m68k_incpc(6); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4ac0_0)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((src) & 0xff); }}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4ad0_0)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; put_byte(srca,src); }}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4ad8_0)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; put_byte(srca,src); }}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4ae0_0)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; put_byte(srca,src); }}}m68k_incpc(2); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4ae8_0)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; put_byte(srca,src); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_4af0_0)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4af8_0)(uae_u32 opcode) /* TAS */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; put_byte(srca,src); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_4af9_0)(uae_u32 opcode) /* TAS */ { {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; put_byte(srca,src); }}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_4c00_0)(uae_u32 opcode) /* MULL */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); m68k_mull(opcode, dst, extra); }}}return 8; } unsigned long REGPARAM2 CPUFUNC(op_4c10_0)(uae_u32 opcode) /* MULL */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4c18_0)(uae_u32 opcode) /* MULL */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4c20_0)(uae_u32 opcode) /* MULL */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4c28_0)(uae_u32 opcode) /* MULL */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4c30_0)(uae_u32 opcode) /* MULL */ { uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4c38_0)(uae_u32 opcode) /* MULL */ { {{ 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); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4c39_0)(uae_u32 opcode) /* MULL */ { {{ 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); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_4c3a_0)(uae_u32 opcode) /* MULL */ { 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); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4c3b_0)(uae_u32 opcode) /* MULL */ { 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); }}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4c3c_0)(uae_u32 opcode) /* MULL */ { {{ uae_s16 extra = get_iword(2); { uae_s32 dst = get_ilong(4); m68k_incpc(8); m68k_mull(opcode, dst, extra); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4c40_0)(uae_u32 opcode) /* DIVL */ { uae_u32 dstreg = opcode & 7; {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); }}}}return 8; } unsigned long REGPARAM2 CPUFUNC(op_4c50_0)(uae_u32 opcode) /* DIVL */ { uae_u32 dstreg = opcode & 7; {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); }}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4c58_0)(uae_u32 opcode) /* DIVL */ { uae_u32 dstreg = opcode & 7; {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); }}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4c60_0)(uae_u32 opcode) /* DIVL */ { uae_u32 dstreg = opcode & 7; {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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4c68_0)(uae_u32 opcode) /* DIVL */ { uae_u32 dstreg = opcode & 7; {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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4c70_0)(uae_u32 opcode) /* DIVL */ { uae_u32 dstreg = opcode & 7; {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); }}}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4c78_0)(uae_u32 opcode) /* DIVL */ { {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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4c79_0)(uae_u32 opcode) /* DIVL */ { {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); }}}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_4c7a_0)(uae_u32 opcode) /* DIVL */ { 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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4c7b_0)(uae_u32 opcode) /* DIVL */ { 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); }}}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4c7c_0)(uae_u32 opcode) /* DIVL */ { {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); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4c90_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(4); return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4c98_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } m68k_areg(regs, dstreg) = srca; }}}m68k_incpc(4); return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4ca8_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(6); return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cb0_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; {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]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}} return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cb8_0)(uae_u32 opcode) /* MVMEL */ { unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(6); return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cb9_0)(uae_u32 opcode) /* MVMEL */ { unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(8); return (20+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cba_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = 2; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(6); return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cbb_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = 3; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; {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]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}} return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cd0_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg); { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(4); return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cd8_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg); { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } m68k_areg(regs, dstreg) = srca; }}}m68k_incpc(4); return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4ce8_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(6); return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cf0_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; {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]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}} return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cf8_0)(uae_u32 opcode) /* MVMEL */ { unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(6); return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cf9_0)(uae_u32 opcode) /* MVMEL */ { unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = get_ilong(4); { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(8); return (20+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cfa_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = 2; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(6); return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cfb_0)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = 3; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; {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]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}} return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4e40_0)(uae_u32 opcode) /* TRAP */ { uae_u32 srcreg = (opcode & 15); {{ uae_u32 src = srcreg; m68k_incpc(2); Exception(src+32,0); }}return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e50_0)(uae_u32 opcode) /* LINK */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 18; } unsigned long REGPARAM2 CPUFUNC(op_4e58_0)(uae_u32 opcode) /* UNLK */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4e60_0)(uae_u32 opcode) /* MVR2USP */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel901; } {{ uae_s32 src = m68k_areg(regs, srcreg); regs.usp = src; }}}m68k_incpc(2); endlabel901: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e68_0)(uae_u32 opcode) /* MVUSP2R */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel902; } {{ m68k_areg(regs, srcreg) = (regs.usp); }}}m68k_incpc(2); endlabel902: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e70_0)(uae_u32 opcode) /* RESET */ { {if (!regs.s) { Exception(8,0); goto endlabel903; } { customreset(); }}m68k_incpc(2); endlabel903: ; return 132; } unsigned long REGPARAM2 CPUFUNC(op_4e71_0)(uae_u32 opcode) /* NOP */ { {}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e72_0)(uae_u32 opcode) /* STOP */ { {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: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e73_0)(uae_u32 opcode) /* RTE */ { {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) == 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: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4e74_0)(uae_u32 opcode) /* RTD */ { {{ uaecptr pca = m68k_areg(regs, 7); { uae_s32 pc = get_long(pca); m68k_areg(regs, 7) += 4; { uae_s16 offs = get_iword(2); m68k_areg(regs, 7) += offs; m68k_setpc_rte(pc); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4e75_0)(uae_u32 opcode) /* RTS */ { { m68k_do_rts(); }return 16; } unsigned long REGPARAM2 CPUFUNC(op_4e76_0)(uae_u32 opcode) /* TRAPV */ { {m68k_incpc(2); if (GET_VFLG) { Exception(7,m68k_getpc()); goto endlabel909; } }endlabel909: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e77_0)(uae_u32 opcode) /* RTR */ { { MakeSR(); { uaecptr sra = m68k_areg(regs, 7); { uae_s16 sr = get_word(sra); m68k_areg(regs, 7) += 2; { uaecptr pca = m68k_areg(regs, 7); { uae_s32 pc = get_long(pca); m68k_areg(regs, 7) += 4; regs.sr &= 0xFF00; sr &= 0xFF; regs.sr |= sr; m68k_setpc(pc); MakeFromSR(); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4e7a_0)(uae_u32 opcode) /* MOVEC2 */ { {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: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_4e7b_0)(uae_u32 opcode) /* MOVE2C */ { {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: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_4e90_0)(uae_u32 opcode) /* JSR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_do_jsr(m68k_getpc() + 2, srca); }}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4ea8_0)(uae_u32 opcode) /* JSR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); m68k_do_jsr(m68k_getpc() + 4, srca); }}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4eb0_0)(uae_u32 opcode) /* JSR */ { uae_u32 srcreg = (opcode & 7); {{m68k_incpc(2); { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); m68k_do_jsr(m68k_getpc() + 0, srca); }}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4eb8_0)(uae_u32 opcode) /* JSR */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); m68k_do_jsr(m68k_getpc() + 4, srca); }}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4eb9_0)(uae_u32 opcode) /* JSR */ { {{ uaecptr srca = get_ilong(2); m68k_do_jsr(m68k_getpc() + 6, srca); }}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4eba_0)(uae_u32 opcode) /* JSR */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); m68k_do_jsr(m68k_getpc() + 4, srca); }}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4ebb_0)(uae_u32 opcode) /* JSR */ { {{m68k_incpc(2); { uaecptr tmppc = m68k_getpc(); uaecptr srca = get_disp_ea_020(tmppc, next_iword()); m68k_do_jsr(m68k_getpc() + 0, srca); }}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4ed0_0)(uae_u32 opcode) /* JMP */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_setpc(srca); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_4ee8_0)(uae_u32 opcode) /* JMP */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); m68k_setpc(srca); }}return 10; } unsigned long REGPARAM2 CPUFUNC(op_4ef0_0)(uae_u32 opcode) /* JMP */ { uae_u32 srcreg = (opcode & 7); {{m68k_incpc(2); { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword()); m68k_setpc(srca); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4ef8_0)(uae_u32 opcode) /* JMP */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); m68k_setpc(srca); }}return 10; } unsigned long REGPARAM2 CPUFUNC(op_4ef9_0)(uae_u32 opcode) /* JMP */ { {{ uaecptr srca = get_ilong(2); m68k_setpc(srca); }}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4efa_0)(uae_u32 opcode) /* JMP */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); m68k_setpc(srca); }}return 10; } unsigned long REGPARAM2 CPUFUNC(op_4efb_0)(uae_u32 opcode) /* JMP */ { {{m68k_incpc(2); { uaecptr tmppc = m68k_getpc(); uaecptr srca = get_disp_ea_020(tmppc, next_iword()); m68k_setpc(srca); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_5000_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5010_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5018_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5020_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_5028_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5030_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5038_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } #endif #ifdef PART_5 unsigned long REGPARAM2 CPUFUNC(op_5039_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5040_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5048_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5050_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5058_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5060_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_5068_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5070_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5078_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5079_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5080_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5088_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5090_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5098_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_50a0_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_50a8_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_50b0_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_50b8_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_50b9_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_50c0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(0) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_50c8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(0)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel954: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_50d0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(0) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_50d8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(0) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_50e0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_50e8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(0) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_50f0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_50f8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(0) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_50f9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(0) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_50fa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(0)) { Exception(7,m68k_getpc()); goto endlabel962; } }}m68k_incpc(4); endlabel962: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_50fb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(0)) { Exception(7,m68k_getpc()); goto endlabel963; } }}m68k_incpc(6); endlabel963: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_50fc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(0)) { Exception(7,m68k_getpc()); goto endlabel964; } }m68k_incpc(2); endlabel964: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_5100_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5110_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5118_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5120_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_5128_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5130_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5138_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5139_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5140_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5148_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5150_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5158_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5160_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_5168_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5170_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5178_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5179_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5180_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5188_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5190_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5198_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_51a0_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_51a8_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_51b0_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_51b8_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_51b9_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_51c0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(1) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_51c8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(1)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel992: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_51d0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(1) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_51d8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(1) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_51e0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_51e8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(1) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_51f0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_51f8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(1) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_51f9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(1) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_51fa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(1)) { Exception(7,m68k_getpc()); goto endlabel1000; } }}m68k_incpc(4); endlabel1000: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_51fb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(1)) { Exception(7,m68k_getpc()); goto endlabel1001; } }}m68k_incpc(6); endlabel1001: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_51fc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(1)) { Exception(7,m68k_getpc()); goto endlabel1002; } }m68k_incpc(2); endlabel1002: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_52c0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(2) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_52c8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(2)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1004: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_52d0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(2) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_52d8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(2) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_52e0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_52e8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(2) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_52f0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_52f8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(2) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_52f9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(2) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_52fa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(2)) { Exception(7,m68k_getpc()); goto endlabel1012; } }}m68k_incpc(4); endlabel1012: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_52fb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(2)) { Exception(7,m68k_getpc()); goto endlabel1013; } }}m68k_incpc(6); endlabel1013: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_52fc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(2)) { Exception(7,m68k_getpc()); goto endlabel1014; } }m68k_incpc(2); endlabel1014: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_53c0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(3) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_53c8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(3)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1016: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_53d0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(3) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_53d8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(3) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_53e0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_53e8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(3) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_53f0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_53f8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(3) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_53f9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(3) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_53fa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(3)) { Exception(7,m68k_getpc()); goto endlabel1024; } }}m68k_incpc(4); endlabel1024: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_53fb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(3)) { Exception(7,m68k_getpc()); goto endlabel1025; } }}m68k_incpc(6); endlabel1025: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_53fc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(3)) { Exception(7,m68k_getpc()); goto endlabel1026; } }m68k_incpc(2); endlabel1026: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_54c0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(4) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_54c8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(4)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1028: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_54d0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(4) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_54d8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(4) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_54e0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_54e8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(4) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_54f0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_54f8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(4) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_54f9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(4) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_54fa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(4)) { Exception(7,m68k_getpc()); goto endlabel1036; } }}m68k_incpc(4); endlabel1036: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_54fb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(4)) { Exception(7,m68k_getpc()); goto endlabel1037; } }}m68k_incpc(6); endlabel1037: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_54fc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(4)) { Exception(7,m68k_getpc()); goto endlabel1038; } }m68k_incpc(2); endlabel1038: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_55c0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(5) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_55c8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(5)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1040: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_55d0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(5) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_55d8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(5) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_55e0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_55e8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(5) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_55f0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_55f8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(5) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_55f9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(5) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_55fa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(5)) { Exception(7,m68k_getpc()); goto endlabel1048; } }}m68k_incpc(4); endlabel1048: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_55fb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(5)) { Exception(7,m68k_getpc()); goto endlabel1049; } }}m68k_incpc(6); endlabel1049: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_55fc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(5)) { Exception(7,m68k_getpc()); goto endlabel1050; } }m68k_incpc(2); endlabel1050: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_56c0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(6) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_56c8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(6)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1052: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_56d0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(6) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_56d8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(6) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_56e0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_56e8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(6) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_56f0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_56f8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(6) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_56f9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(6) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_56fa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(6)) { Exception(7,m68k_getpc()); goto endlabel1060; } }}m68k_incpc(4); endlabel1060: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_56fb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(6)) { Exception(7,m68k_getpc()); goto endlabel1061; } }}m68k_incpc(6); endlabel1061: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_56fc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(6)) { Exception(7,m68k_getpc()); goto endlabel1062; } }m68k_incpc(2); endlabel1062: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_57c0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(7) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_57c8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(7)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1064: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_57d0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(7) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_57d8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(7) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_57e0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_57e8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(7) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_57f0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_57f8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(7) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_57f9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(7) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_57fa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(7)) { Exception(7,m68k_getpc()); goto endlabel1072; } }}m68k_incpc(4); endlabel1072: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_57fb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(7)) { Exception(7,m68k_getpc()); goto endlabel1073; } }}m68k_incpc(6); endlabel1073: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_57fc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(7)) { Exception(7,m68k_getpc()); goto endlabel1074; } }m68k_incpc(2); endlabel1074: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_58c0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(8) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_58c8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(8)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1076: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_58d0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(8) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_58d8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(8) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_58e0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_58e8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(8) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_58f0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_58f8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(8) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_58f9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(8) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_58fa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(8)) { Exception(7,m68k_getpc()); goto endlabel1084; } }}m68k_incpc(4); endlabel1084: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_58fb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(8)) { Exception(7,m68k_getpc()); goto endlabel1085; } }}m68k_incpc(6); endlabel1085: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_58fc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(8)) { Exception(7,m68k_getpc()); goto endlabel1086; } }m68k_incpc(2); endlabel1086: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_59c0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(9) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_59c8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(9)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1088: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_59d0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(9) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_59d8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(9) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_59e0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_59e8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(9) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_59f0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_59f8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(9) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_59f9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(9) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_59fa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(9)) { Exception(7,m68k_getpc()); goto endlabel1096; } }}m68k_incpc(4); endlabel1096: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_59fb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(9)) { Exception(7,m68k_getpc()); goto endlabel1097; } }}m68k_incpc(6); endlabel1097: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_59fc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(9)) { Exception(7,m68k_getpc()); goto endlabel1098; } }m68k_incpc(2); endlabel1098: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_5ac0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(10) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5ac8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(10)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1100: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ad0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(10) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ad8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(10) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ae0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_5ae8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(10) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5af0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5af8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(10) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5af9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(10) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5afa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(10)) { Exception(7,m68k_getpc()); goto endlabel1108; } }}m68k_incpc(4); endlabel1108: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_5afb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(10)) { Exception(7,m68k_getpc()); goto endlabel1109; } }}m68k_incpc(6); endlabel1109: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5afc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(10)) { Exception(7,m68k_getpc()); goto endlabel1110; } }m68k_incpc(2); endlabel1110: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_5bc0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(11) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5bc8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(11)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1112: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5bd0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(11) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5bd8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(11) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5be0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_5be8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(11) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5bf0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5bf8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(11) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5bf9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(11) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5bfa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(11)) { Exception(7,m68k_getpc()); goto endlabel1120; } }}m68k_incpc(4); endlabel1120: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_5bfb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(11)) { Exception(7,m68k_getpc()); goto endlabel1121; } }}m68k_incpc(6); endlabel1121: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5bfc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(11)) { Exception(7,m68k_getpc()); goto endlabel1122; } }m68k_incpc(2); endlabel1122: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_5cc0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(12) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5cc8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(12)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1124: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5cd0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(12) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5cd8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(12) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ce0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_5ce8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(12) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5cf0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5cf8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(12) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5cf9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(12) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5cfa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(12)) { Exception(7,m68k_getpc()); goto endlabel1132; } }}m68k_incpc(4); endlabel1132: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_5cfb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(12)) { Exception(7,m68k_getpc()); goto endlabel1133; } }}m68k_incpc(6); endlabel1133: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5cfc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(12)) { Exception(7,m68k_getpc()); goto endlabel1134; } }m68k_incpc(2); endlabel1134: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_5dc0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(13) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5dc8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(13)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1136: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5dd0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(13) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5dd8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(13) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5de0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_5de8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(13) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5df0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5df8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(13) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5df9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(13) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5dfa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(13)) { Exception(7,m68k_getpc()); goto endlabel1144; } }}m68k_incpc(4); endlabel1144: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_5dfb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(13)) { Exception(7,m68k_getpc()); goto endlabel1145; } }}m68k_incpc(6); endlabel1145: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5dfc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(13)) { Exception(7,m68k_getpc()); goto endlabel1146; } }m68k_incpc(2); endlabel1146: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_5ec0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(14) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5ec8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(14)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1148: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ed0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(14) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ed8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(14) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ee0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_5ee8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(14) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5ef0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5ef8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(14) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5ef9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(14) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5efa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(14)) { Exception(7,m68k_getpc()); goto endlabel1156; } }}m68k_incpc(4); endlabel1156: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_5efb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(14)) { Exception(7,m68k_getpc()); goto endlabel1157; } }}m68k_incpc(6); endlabel1157: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5efc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(14)) { Exception(7,m68k_getpc()); goto endlabel1158; } }m68k_incpc(2); endlabel1158: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_5fc0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(15) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5fc8_0)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword(2); if (!cctrue(15)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((uae_s32)offs + 2); return 10; } else { m68k_incpc(4); return 14; } } }}}m68k_incpc(4); endlabel1160: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5fd0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(15) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5fd8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(15) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_5fe0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 14; } unsigned long REGPARAM2 CPUFUNC(op_5fe8_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(15) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_5ff0_0)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5ff8_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { int val = cctrue(15) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 16; } #endif #ifdef PART_6 unsigned long REGPARAM2 CPUFUNC(op_5ff9_0)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong(2); { int val = cctrue(15) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_5ffa_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s16 dummy = get_iword(2); if (cctrue(15)) { Exception(7,m68k_getpc()); goto endlabel1168; } }}m68k_incpc(4); endlabel1168: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_5ffb_0)(uae_u32 opcode) /* TRAPcc */ { {{ uae_s32 dummy = get_ilong(2); if (cctrue(15)) { Exception(7,m68k_getpc()); goto endlabel1169; } }}m68k_incpc(6); endlabel1169: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ffc_0)(uae_u32 opcode) /* TRAPcc */ { { if (cctrue(15)) { Exception(7,m68k_getpc()); goto endlabel1170; } }m68k_incpc(2); endlabel1170: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_6000_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(0)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1171: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6001_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(0)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1172: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_60ff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(0)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1173: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6100_0)(uae_u32 opcode) /* BSR */ { {{ uae_s16 src = get_iword(2); uae_s32 s = (uae_s32)src + 2; m68k_do_bsr(m68k_getpc() + 4, s); }}return 18; } unsigned long REGPARAM2 CPUFUNC(op_6101_0)(uae_u32 opcode) /* BSR */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; uae_s32 s = (uae_s32)src + 2; m68k_do_bsr(m68k_getpc() + 2, s); }}return 18; } unsigned long REGPARAM2 CPUFUNC(op_61ff_0)(uae_u32 opcode) /* BSR */ { {{ uae_s32 src = get_ilong(2); uae_s32 s = (uae_s32)src + 2; m68k_do_bsr(m68k_getpc() + 6, s); }}return 18; } unsigned long REGPARAM2 CPUFUNC(op_6200_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(2)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1177: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6201_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(2)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1178: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_62ff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(2)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1179: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6300_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(3)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1180: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6301_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(3)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1181: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_63ff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(3)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1182: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6400_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(4)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1183: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6401_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(4)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1184: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_64ff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(4)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1185: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6500_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(5)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1186: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6501_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(5)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1187: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_65ff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(5)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1188: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6600_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(6)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1189: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6601_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(6)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1190: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_66ff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(6)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1191: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6700_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(7)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1192: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6701_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(7)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1193: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_67ff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(7)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1194: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6800_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(8)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1195: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6801_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(8)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1196: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_68ff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(8)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1197: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6900_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(9)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1198: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6901_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(9)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1199: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_69ff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(9)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1200: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6a00_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(10)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1201: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6a01_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(10)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1202: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6aff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(10)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1203: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6b00_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(11)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1204: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6b01_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(11)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1205: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6bff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(11)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1206: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6c00_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(12)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1207: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6c01_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(12)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1208: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6cff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(12)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1209: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6d00_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(13)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1210: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6d01_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(13)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1211: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6dff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(13)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1212: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6e00_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(14)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1213: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6e01_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(14)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1214: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6eff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(14)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1215: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6f00_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword(2); if (!cctrue(15)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(4); endlabel1216: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6f01_0)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(15)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(2); endlabel1217: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6fff_0)(uae_u32 opcode) /* Bcc */ { {{ uae_s32 src = get_ilong(2); if (!cctrue(15)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel1218: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_7000_0)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_u32 src = srcreg; { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_8000_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_8010_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8018_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8020_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_8028_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8030_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_8038_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8039_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_803a_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_803b_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_803c_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte(2); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8040_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_8050_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8058_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8060_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_8068_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8070_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_8078_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8079_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_807a_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_807b_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_807c_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8080_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8090_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_8098_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_80a0_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(2); return 16; } unsigned long REGPARAM2 CPUFUNC(op_80a8_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_80b0_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_80b8_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_80b9_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_80ba_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_80bb_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_80bc_0)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_80c0_0)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1253; } 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); } } }}}endlabel1253: ; return 140; } unsigned long REGPARAM2 CPUFUNC(op_80d0_0)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel1254; } 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); } } }}}}endlabel1254: ; return 144; } unsigned long REGPARAM2 CPUFUNC(op_80d8_0)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s32 dst = m68k_dreg(regs, dstreg); 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: ; return 144; } unsigned long REGPARAM2 CPUFUNC(op_80e0_0)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { 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: ; return 146; } unsigned long REGPARAM2 CPUFUNC(op_80e8_0)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); 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: ; return 148; } unsigned long REGPARAM2 CPUFUNC(op_80f0_0)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { 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 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: ; return 150; } unsigned long REGPARAM2 CPUFUNC(op_80f8_0)(uae_u32 opcode) /* DIVU */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); 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: ; return 148; } unsigned long REGPARAM2 CPUFUNC(op_80f9_0)(uae_u32 opcode) /* DIVU */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(6); 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: ; return 152; } unsigned long REGPARAM2 CPUFUNC(op_80fa_0)(uae_u32 opcode) /* DIVU */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); 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: ; return 148; } unsigned long REGPARAM2 CPUFUNC(op_80fb_0)(uae_u32 opcode) /* DIVU */ { uae_u32 dstreg = (opcode >> 9) & 7; { 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 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: ; return 150; } unsigned long REGPARAM2 CPUFUNC(op_80fc_0)(uae_u32 opcode) /* DIVU */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = get_iword(2); { uae_s32 dst = m68k_dreg(regs, dstreg); 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: ; return 144; } unsigned long REGPARAM2 CPUFUNC(op_8100_0)(uae_u32 opcode) /* SBCD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); { uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); uae_u16 newv, 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); return 6; } unsigned long REGPARAM2 CPUFUNC(op_8108_0)(uae_u32 opcode) /* SBCD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); return 18; } unsigned long REGPARAM2 CPUFUNC(op_8110_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8118_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8120_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_8128_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_8130_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_8138_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_8139_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_8140_0)(uae_u32 opcode) /* PACK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { 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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8148_0)(uae_u32 opcode) /* PACK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { 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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8150_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8158_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8160_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_8168_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_8170_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_8178_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_8179_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_8180_0)(uae_u32 opcode) /* UNPK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { 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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8188_0)(uae_u32 opcode) /* UNPK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { 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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8190_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_8198_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_81a0_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_81a8_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_81b0_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_81b8_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_81b9_0)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_81c0_0)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1291; } 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); } } }}}endlabel1291: ; return 158; } unsigned long REGPARAM2 CPUFUNC(op_81d0_0)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel1292; } 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); } } }}}}endlabel1292: ; return 162; } unsigned long REGPARAM2 CPUFUNC(op_81d8_0)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s32 dst = m68k_dreg(regs, dstreg); 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: ; return 162; } unsigned long REGPARAM2 CPUFUNC(op_81e0_0)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { 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: ; return 164; } unsigned long REGPARAM2 CPUFUNC(op_81e8_0)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); 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: ; return 166; } unsigned long REGPARAM2 CPUFUNC(op_81f0_0)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { 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 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: ; return 168; } unsigned long REGPARAM2 CPUFUNC(op_81f8_0)(uae_u32 opcode) /* DIVS */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); 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: ; return 166; } unsigned long REGPARAM2 CPUFUNC(op_81f9_0)(uae_u32 opcode) /* DIVS */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(6); 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: ; return 170; } unsigned long REGPARAM2 CPUFUNC(op_81fa_0)(uae_u32 opcode) /* DIVS */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); 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: ; return 166; } unsigned long REGPARAM2 CPUFUNC(op_81fb_0)(uae_u32 opcode) /* DIVS */ { uae_u32 dstreg = (opcode >> 9) & 7; { 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 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: ; return 168; } unsigned long REGPARAM2 CPUFUNC(op_81fc_0)(uae_u32 opcode) /* DIVS */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = get_iword(2); { uae_s32 dst = m68k_dreg(regs, dstreg); 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: ; return 162; } unsigned long REGPARAM2 CPUFUNC(op_9000_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_9010_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9018_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9020_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_9028_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9030_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_9038_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9039_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_903a_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_903b_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_903c_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte(2); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9040_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_9048_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_9050_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9058_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9060_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_9068_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9070_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_9078_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9079_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_907a_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_907b_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_907c_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9080_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9088_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9090_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_9098_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_90a0_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(2); return 16; } unsigned long REGPARAM2 CPUFUNC(op_90a8_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_90b0_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_90b8_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_90b9_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_90ba_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_90bb_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_90bc_0)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_90c0_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_90c8_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_90d0_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_90d8_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_90e0_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_90e8_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_90f0_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_90f8_0)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_90f9_0)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_90fa_0)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_90fb_0)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_90fc_0)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9100_0)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_9108_0)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); return 18; } unsigned long REGPARAM2 CPUFUNC(op_9110_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9118_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9120_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_9128_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_9130_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_9138_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_9139_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_9140_0)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_9148_0)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { 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); return 18; } unsigned long REGPARAM2 CPUFUNC(op_9150_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9158_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9160_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_9168_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_9170_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_9178_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_9179_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_9180_0)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9188_0)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { 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); return 30; } unsigned long REGPARAM2 CPUFUNC(op_9190_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_9198_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_91a0_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_91a8_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_91b0_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_91b8_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_91b9_0)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_91c0_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_91c8_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_91d0_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_91d8_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_91e0_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 16; } unsigned long REGPARAM2 CPUFUNC(op_91e8_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_91f0_0)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_91f8_0)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_91f9_0)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_91fa_0)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_91fb_0)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_91fc_0)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b000_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_b010_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b018_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b020_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_b028_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b030_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_b038_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b039_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b03a_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b03b_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_b03c_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte(2); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b040_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); return 4; } #endif #ifdef PART_7 unsigned long REGPARAM2 CPUFUNC(op_b048_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_b050_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b058_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b060_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_b068_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b070_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_b078_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b079_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b07a_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b07b_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_b07c_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b080_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b088_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b090_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b098_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b0a0_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b0a8_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_b0b0_0)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_b0b8_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_b0b9_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_b0ba_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_b0bb_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_b0bc_0)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(6); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b0c0_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b0c8_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b0d0_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_b0d8_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_b0e0_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b0e8_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b0f0_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_b0f8_0)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b0f9_0)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 18; } unsigned long REGPARAM2 CPUFUNC(op_b0fa_0)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b0fb_0)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_b0fc_0)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(4); return 10; } unsigned long REGPARAM2 CPUFUNC(op_b100_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_b108_0)(uae_u32 opcode) /* CMPM */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b110_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b118_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b120_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b128_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b130_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_b138_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b139_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_b140_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_b148_0)(uae_u32 opcode) /* CMPM */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b150_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b158_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b160_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b168_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b170_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_b178_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b179_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_b180_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b188_0)(uae_u32 opcode) /* CMPM */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_b190_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_b198_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_b1a0_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_b1a8_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_b1b0_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_b1b8_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_b1b9_0)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_b1c0_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b1c8_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b1d0_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b1d8_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b1e0_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b1e8_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_b1f0_0)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_b1f8_0)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_b1f9_0)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_b1fa_0)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_b1fb_0)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_b1fc_0)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(6); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c000_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_c010_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c018_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c020_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_c028_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c030_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_c038_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c039_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c03a_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c03b_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_c03c_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte(2); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c040_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_c050_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c058_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c060_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_c068_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c070_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_c078_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c079_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c07a_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c07b_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_c07c_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c080_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c090_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c098_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c0a0_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(2); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c0a8_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_c0b0_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_c0b8_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_c0b9_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_c0ba_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_c0bb_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_c0bc_0)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c0c0_0)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 70; } unsigned long REGPARAM2 CPUFUNC(op_c0d0_0)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 74; } unsigned long REGPARAM2 CPUFUNC(op_c0d8_0)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 74; } unsigned long REGPARAM2 CPUFUNC(op_c0e0_0)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 76; } unsigned long REGPARAM2 CPUFUNC(op_c0e8_0)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 78; } unsigned long REGPARAM2 CPUFUNC(op_c0f0_0)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 80; } unsigned long REGPARAM2 CPUFUNC(op_c0f8_0)(uae_u32 opcode) /* MULU */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 78; } unsigned long REGPARAM2 CPUFUNC(op_c0f9_0)(uae_u32 opcode) /* MULU */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(6); return 82; } unsigned long REGPARAM2 CPUFUNC(op_c0fa_0)(uae_u32 opcode) /* MULU */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 78; } unsigned long REGPARAM2 CPUFUNC(op_c0fb_0)(uae_u32 opcode) /* MULU */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 80; } unsigned long REGPARAM2 CPUFUNC(op_c0fc_0)(uae_u32 opcode) /* MULU */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}m68k_incpc(4); return 74; } unsigned long REGPARAM2 CPUFUNC(op_c100_0)(uae_u32 opcode) /* ABCD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); { uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0); uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); uae_u16 newv, 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); return 6; } unsigned long REGPARAM2 CPUFUNC(op_c108_0)(uae_u32 opcode) /* ABCD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); return 18; } unsigned long REGPARAM2 CPUFUNC(op_c110_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c118_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c120_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c128_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c130_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_c138_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c139_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_c140_0)(uae_u32 opcode) /* EXG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_dreg(regs, srcreg) = (dst); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_c148_0)(uae_u32 opcode) /* EXG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); m68k_areg(regs, srcreg) = (dst); m68k_areg(regs, dstreg) = (src); }}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_c150_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c158_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c160_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c168_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c170_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_c178_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c179_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_c188_0)(uae_u32 opcode) /* EXG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); m68k_dreg(regs, srcreg) = (dst); m68k_areg(regs, dstreg) = (src); }}}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_c190_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_c198_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_c1a0_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_c1a8_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_c1b0_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_c1b8_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_c1b9_0)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_c1c0_0)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 70; } unsigned long REGPARAM2 CPUFUNC(op_c1d0_0)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 74; } unsigned long REGPARAM2 CPUFUNC(op_c1d8_0)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 74; } unsigned long REGPARAM2 CPUFUNC(op_c1e0_0)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 76; } unsigned long REGPARAM2 CPUFUNC(op_c1e8_0)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 78; } unsigned long REGPARAM2 CPUFUNC(op_c1f0_0)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 80; } unsigned long REGPARAM2 CPUFUNC(op_c1f8_0)(uae_u32 opcode) /* MULS */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 78; } unsigned long REGPARAM2 CPUFUNC(op_c1f9_0)(uae_u32 opcode) /* MULS */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(6); return 82; } unsigned long REGPARAM2 CPUFUNC(op_c1fa_0)(uae_u32 opcode) /* MULS */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 78; } unsigned long REGPARAM2 CPUFUNC(op_c1fb_0)(uae_u32 opcode) /* MULS */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 80; } unsigned long REGPARAM2 CPUFUNC(op_c1fc_0)(uae_u32 opcode) /* MULS */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}m68k_incpc(4); return 74; } unsigned long REGPARAM2 CPUFUNC(op_d000_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_d010_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d018_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d020_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_d028_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d030_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_d038_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d039_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d03a_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d03b_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_d03c_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte(2); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d040_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_d048_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_d050_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d058_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d060_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(2); return 10; } unsigned long REGPARAM2 CPUFUNC(op_d068_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d070_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_d078_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d079_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d07a_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d07b_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_d07c_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d080_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d088_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d090_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d098_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d0a0_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(2); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d0a8_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d0b0_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_d0b8_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d0b9_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_d0ba_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d0bb_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_d0bc_0)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d0c0_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d0c8_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d0d0_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d0d8_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d0e0_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d0e8_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d0f0_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_d0f8_0)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d0f9_0)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_d0fa_0)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d0fb_0)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_d0fc_0)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(4); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d100_0)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_d108_0)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d110_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d118_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d120_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d128_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d130_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_d138_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d139_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_d140_0)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}m68k_incpc(2); return 4; } unsigned long REGPARAM2 CPUFUNC(op_d148_0)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { 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); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d150_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d158_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s16 dst = get_word(dsta); m68k_areg(regs, dstreg) += 2; {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d160_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; { uae_s16 dst = get_word(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d168_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d170_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_d178_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d179_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_d180_0)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d188_0)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { 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); return 30; } unsigned long REGPARAM2 CPUFUNC(op_d190_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_d198_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s32 dst = get_long(dsta); m68k_areg(regs, dstreg) += 4; {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 20; } unsigned long REGPARAM2 CPUFUNC(op_d1a0_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; { uae_s32 dst = get_long(dsta); m68k_areg (regs, dstreg) = dsta; {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(2); return 22; } unsigned long REGPARAM2 CPUFUNC(op_d1a8_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_d1b0_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ 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); }}}}}}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_d1b8_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 24; } unsigned long REGPARAM2 CPUFUNC(op_d1b9_0)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong(2); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(6); return 28; } unsigned long REGPARAM2 CPUFUNC(op_d1c0_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d1c8_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d1d0_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d1d8_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 14; } #endif #ifdef PART_8 unsigned long REGPARAM2 CPUFUNC(op_d1e0_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d1e8_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d1f0_0)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_d1f8_0)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d1f9_0)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_d1fa_0)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d1fb_0)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{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); }}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_d1fc_0)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(6); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e000_0)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ 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; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e008_0)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_CFLG ((cnt == 8) & (val >> 7)); COPY_CARRY; val = 0; } else { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s8)(val)) == 0); SET_NFLG (((uae_s8)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); }}}}m68k_incpc(2); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e010_0)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e018_0)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e020_0)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ 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; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e028_0)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_CFLG ((cnt == 8) & (val >> 7)); COPY_CARRY; val = 0; } else if (cnt > 0) { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s8)(val)) == 0); SET_NFLG (((uae_s8)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); }}}}m68k_incpc(2); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e030_0)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 36) cnt -= 36; if (cnt >= 18) cnt -= 18; if (cnt >= 9) cnt -= 9; if (cnt > 0) { cnt--; { 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e038_0)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e040_0)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ 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; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e048_0)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_CFLG ((cnt == 16) & (val >> 15)); COPY_CARRY; val = 0; } else { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); }}}}m68k_incpc(2); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e050_0)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e058_0)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e060_0)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ 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; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e068_0)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_CFLG ((cnt == 16) & (val >> 15)); COPY_CARRY; val = 0; } else if (cnt > 0) { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); }}}}m68k_incpc(2); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e070_0)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e078_0)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e080_0)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; uae_u32 sign = (0x80000000 & val) >> 31; cnt &= 63; retcycles = cnt; 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e088_0)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_CFLG ((cnt == 32) & (val >> 31)); COPY_CARRY; val = 0; } else { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s32)(val)) == 0); SET_NFLG (((uae_s32)(val)) < 0); m68k_dreg(regs, dstreg) = (val); }}}}m68k_incpc(2); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e090_0)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e098_0)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e0a0_0)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ 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; retcycles = cnt; 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e0a8_0)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_CFLG ((cnt == 32) & (val >> 31)); COPY_CARRY; val = 0; } else if (cnt > 0) { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s32)(val)) == 0); SET_NFLG (((uae_s32)(val)) < 0); m68k_dreg(regs, dstreg) = (val); }}}}m68k_incpc(2); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e0b0_0)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e0b8_0)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e0d0_0)(uae_u32 opcode) /* ASRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 cflg = val & 1; val = (val >> 1) | sign; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (cflg); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e0d8_0)(uae_u32 opcode) /* ASRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); m68k_areg(regs, srcreg) += 2; { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 cflg = val & 1; val = (val >> 1) | sign; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (cflg); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e0e0_0)(uae_u32 opcode) /* ASRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; { uae_s16 data = get_word(dataa); m68k_areg (regs, srcreg) = dataa; { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 cflg = val & 1; val = (val >> 1) | sign; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (cflg); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_e0e8_0)(uae_u32 opcode) /* ASRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 cflg = val & 1; val = (val >> 1) | sign; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (cflg); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e0f0_0)(uae_u32 opcode) /* ASRW */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_e0f8_0)(uae_u32 opcode) /* ASRW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 cflg = val & 1; val = (val >> 1) | sign; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (cflg); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e0f9_0)(uae_u32 opcode) /* ASRW */ { {{ uaecptr dataa = get_ilong(2); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 cflg = val & 1; val = (val >> 1) | sign; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (cflg); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_e100_0)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_VFLG (val != 0); SET_CFLG (cnt == 8 ? val & 1 : 0); COPY_CARRY; val = 0; } else { 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e108_0)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_CFLG (cnt == 8 ? val & 1 : 0); COPY_CARRY; val = 0; } else { val <<= (cnt - 1); SET_CFLG ((val & 0x80) >> 7); COPY_CARRY; val <<= 1; val &= 0xff; } SET_ZFLG (((uae_s8)(val)) == 0); SET_NFLG (((uae_s8)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); }}}}m68k_incpc(2); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e110_0)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e118_0)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e120_0)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_VFLG (val != 0); SET_CFLG (cnt == 8 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e128_0)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_CFLG (cnt == 8 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { val <<= (cnt - 1); SET_CFLG ((val & 0x80) >> 7); COPY_CARRY; val <<= 1; val &= 0xff; } SET_ZFLG (((uae_s8)(val)) == 0); SET_NFLG (((uae_s8)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); }}}}m68k_incpc(2); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e130_0)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 36) cnt -= 36; if (cnt >= 18) cnt -= 18; if (cnt >= 9) cnt -= 9; if (cnt > 0) { cnt--; { 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e138_0)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e140_0)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_VFLG (val != 0); SET_CFLG (cnt == 16 ? val & 1 : 0); COPY_CARRY; val = 0; } else { 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e148_0)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_CFLG (cnt == 16 ? val & 1 : 0); COPY_CARRY; val = 0; } else { val <<= (cnt - 1); SET_CFLG ((val & 0x8000) >> 15); COPY_CARRY; val <<= 1; val &= 0xffff; } SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); }}}}m68k_incpc(2); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e150_0)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e158_0)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e160_0)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_VFLG (val != 0); SET_CFLG (cnt == 16 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e168_0)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_CFLG (cnt == 16 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { val <<= (cnt - 1); SET_CFLG ((val & 0x8000) >> 15); COPY_CARRY; val <<= 1; val &= 0xffff; } SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); }}}}m68k_incpc(2); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e170_0)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e178_0)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e180_0)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_VFLG (val != 0); SET_CFLG (cnt == 32 ? val & 1 : 0); COPY_CARRY; val = 0; } else { 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e188_0)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_CFLG (cnt == 32 ? val & 1 : 0); COPY_CARRY; val = 0; } else { val <<= (cnt - 1); SET_CFLG ((val & 0x80000000) >> 31); COPY_CARRY; val <<= 1; val &= 0xffffffff; } SET_ZFLG (((uae_s32)(val)) == 0); SET_NFLG (((uae_s32)(val)) < 0); m68k_dreg(regs, dstreg) = (val); }}}}m68k_incpc(2); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e190_0)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e198_0)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e1a0_0)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_VFLG (val != 0); SET_CFLG (cnt == 32 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e1a8_0)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_CFLG (cnt == 32 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { val <<= (cnt - 1); SET_CFLG ((val & 0x80000000) >> 31); COPY_CARRY; val <<= 1; val &= 0xffffffff; } SET_ZFLG (((uae_s32)(val)) == 0); SET_NFLG (((uae_s32)(val)) < 0); m68k_dreg(regs, dstreg) = (val); }}}}m68k_incpc(2); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e1b0_0)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e1b8_0)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e1d0_0)(uae_u32 opcode) /* ASLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 sign2; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); sign2 = 0x8000 & val; SET_CFLG (sign != 0); COPY_CARRY; SET_VFLG (GET_VFLG | (sign2 != sign)); put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e1d8_0)(uae_u32 opcode) /* ASLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); m68k_areg(regs, srcreg) += 2; { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 sign2; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); sign2 = 0x8000 & val; SET_CFLG (sign != 0); COPY_CARRY; SET_VFLG (GET_VFLG | (sign2 != sign)); put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e1e0_0)(uae_u32 opcode) /* ASLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; { uae_s16 data = get_word(dataa); m68k_areg (regs, srcreg) = dataa; { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 sign2; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); sign2 = 0x8000 & val; SET_CFLG (sign != 0); COPY_CARRY; SET_VFLG (GET_VFLG | (sign2 != sign)); put_word(dataa,val); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_e1e8_0)(uae_u32 opcode) /* ASLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 sign2; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); sign2 = 0x8000 & val; SET_CFLG (sign != 0); COPY_CARRY; SET_VFLG (GET_VFLG | (sign2 != sign)); put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e1f0_0)(uae_u32 opcode) /* ASLW */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_e1f8_0)(uae_u32 opcode) /* ASLW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 sign2; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); sign2 = 0x8000 & val; SET_CFLG (sign != 0); COPY_CARRY; SET_VFLG (GET_VFLG | (sign2 != sign)); put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e1f9_0)(uae_u32 opcode) /* ASLW */ { {{ uaecptr dataa = get_ilong(2); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 sign2; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); sign2 = 0x8000 & val; SET_CFLG (sign != 0); COPY_CARRY; SET_VFLG (GET_VFLG | (sign2 != sign)); put_word(dataa,val); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_e2d0_0)(uae_u32 opcode) /* LSRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 carry = val & 1; val >>= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e2d8_0)(uae_u32 opcode) /* LSRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); m68k_areg(regs, srcreg) += 2; { uae_u32 val = (uae_u16)data; uae_u32 carry = val & 1; val >>= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e2e0_0)(uae_u32 opcode) /* LSRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; { uae_s16 data = get_word(dataa); m68k_areg (regs, srcreg) = dataa; { uae_u32 val = (uae_u16)data; uae_u32 carry = val & 1; val >>= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_e2e8_0)(uae_u32 opcode) /* LSRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 carry = val & 1; val >>= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e2f0_0)(uae_u32 opcode) /* LSRW */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_e2f8_0)(uae_u32 opcode) /* LSRW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 carry = val & 1; val >>= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e2f9_0)(uae_u32 opcode) /* LSRW */ { {{ uaecptr dataa = get_ilong(2); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 carry = val & 1; val >>= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_e3d0_0)(uae_u32 opcode) /* LSLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e3d8_0)(uae_u32 opcode) /* LSLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); m68k_areg(regs, srcreg) += 2; { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e3e0_0)(uae_u32 opcode) /* LSLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; { uae_s16 data = get_word(dataa); m68k_areg (regs, srcreg) = dataa; { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_e3e8_0)(uae_u32 opcode) /* LSLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e3f0_0)(uae_u32 opcode) /* LSLW */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_e3f8_0)(uae_u32 opcode) /* LSLW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e3f9_0)(uae_u32 opcode) /* LSLW */ { {{ uaecptr dataa = get_ilong(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_e4d0_0)(uae_u32 opcode) /* ROXRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (GET_XFLG) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e4d8_0)(uae_u32 opcode) /* ROXRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); m68k_areg(regs, srcreg) += 2; { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (GET_XFLG) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e4e0_0)(uae_u32 opcode) /* ROXRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; { uae_s16 data = get_word(dataa); m68k_areg (regs, srcreg) = dataa; { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (GET_XFLG) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_e4e8_0)(uae_u32 opcode) /* ROXRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (GET_XFLG) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e4f0_0)(uae_u32 opcode) /* ROXRW */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_e4f8_0)(uae_u32 opcode) /* ROXRW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (GET_XFLG) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e4f9_0)(uae_u32 opcode) /* ROXRW */ { {{ uaecptr dataa = get_ilong(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (GET_XFLG) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_e5d0_0)(uae_u32 opcode) /* ROXLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (GET_XFLG) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e5d8_0)(uae_u32 opcode) /* ROXLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); m68k_areg(regs, srcreg) += 2; { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (GET_XFLG) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e5e0_0)(uae_u32 opcode) /* ROXLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; { uae_s16 data = get_word(dataa); m68k_areg (regs, srcreg) = dataa; { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (GET_XFLG) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_e5e8_0)(uae_u32 opcode) /* ROXLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (GET_XFLG) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e5f0_0)(uae_u32 opcode) /* ROXLW */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_e5f8_0)(uae_u32 opcode) /* ROXLW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (GET_XFLG) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e5f9_0)(uae_u32 opcode) /* ROXLW */ { {{ uaecptr dataa = get_ilong(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (GET_XFLG) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_e6d0_0)(uae_u32 opcode) /* RORW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (carry) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e6d8_0)(uae_u32 opcode) /* RORW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); m68k_areg(regs, srcreg) += 2; { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (carry) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e6e0_0)(uae_u32 opcode) /* RORW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; { uae_s16 data = get_word(dataa); m68k_areg (regs, srcreg) = dataa; { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (carry) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); put_word(dataa,val); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_e6e8_0)(uae_u32 opcode) /* RORW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (carry) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e6f0_0)(uae_u32 opcode) /* RORW */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_e6f8_0)(uae_u32 opcode) /* RORW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (carry) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e6f9_0)(uae_u32 opcode) /* RORW */ { {{ uaecptr dataa = get_ilong(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (carry) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); put_word(dataa,val); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_e7d0_0)(uae_u32 opcode) /* ROLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (carry) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e7d8_0)(uae_u32 opcode) /* ROLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); { uae_s16 data = get_word(dataa); m68k_areg(regs, srcreg) += 2; { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (carry) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); put_word(dataa,val); }}}}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e7e0_0)(uae_u32 opcode) /* ROLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; { uae_s16 data = get_word(dataa); m68k_areg (regs, srcreg) = dataa; { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (carry) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); put_word(dataa,val); }}}}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_e7e8_0)(uae_u32 opcode) /* ROLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (carry) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e7f0_0)(uae_u32 opcode) /* ROLW */ { uae_u32 srcreg = (opcode & 7); {{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); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_e7f8_0)(uae_u32 opcode) /* ROLW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (carry) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); put_word(dataa,val); }}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e7f9_0)(uae_u32 opcode) /* ROLW */ { {{ uaecptr dataa = get_ilong(2); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (carry) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); put_word(dataa,val); }}}}m68k_incpc(6); return 20; } unsigned long REGPARAM2 CPUFUNC(op_e8c0_0)(uae_u32 opcode) /* BFTST */ { uae_u32 dstreg = opcode & 7; {{ 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 (tmp & (1 << (width-1)) ? 1 : 0); SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); }}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_e8d0_0)(uae_u32 opcode) /* BFTST */ { uae_u32 dstreg = opcode & 7; {{ 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 (tmp & (1 << (width-1)) ? 1 : 0); SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); }}}}m68k_incpc(4); return 8; } unsigned long REGPARAM2 CPUFUNC(op_e8e8_0)(uae_u32 opcode) /* BFTST */ { uae_u32 dstreg = opcode & 7; {{ 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 (tmp & (1 << (width-1)) ? 1 : 0); SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); }}}}m68k_incpc(6); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e8f0_0)(uae_u32 opcode) /* BFTST */ { uae_u32 dstreg = opcode & 7; {{ 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 (tmp & (1 << (width-1)) ? 1 : 0); SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_e8f8_0)(uae_u32 opcode) /* BFTST */ { {{ 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 (tmp & (1 << (width-1)) ? 1 : 0); SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); }}}}m68k_incpc(6); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e8f9_0)(uae_u32 opcode) /* BFTST */ { {{ 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 (tmp & (1 << (width-1)) ? 1 : 0); SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); }}}}m68k_incpc(8); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e8fa_0)(uae_u32 opcode) /* BFTST */ { 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 (tmp & (1 << (width-1)) ? 1 : 0); SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); }}}}m68k_incpc(6); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e8fb_0)(uae_u32 opcode) /* BFTST */ { 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 (tmp & (1 << (width-1)) ? 1 : 0); SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_e9c0_0)(uae_u32 opcode) /* BFEXTU */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_e9d0_0)(uae_u32 opcode) /* BFEXTU */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_e9e8_0)(uae_u32 opcode) /* BFEXTU */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e9f0_0)(uae_u32 opcode) /* BFEXTU */ { uae_u32 dstreg = opcode & 7; {{ 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 (tmp & (1 << (width-1)) ? 1 : 0); SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); m68k_dreg(regs, (extra >> 12) & 7) = tmp; }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_e9f8_0)(uae_u32 opcode) /* BFEXTU */ { {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e9f9_0)(uae_u32 opcode) /* BFEXTU */ { {{ 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 (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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e9fa_0)(uae_u32 opcode) /* BFEXTU */ { 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_e9fb_0)(uae_u32 opcode) /* BFEXTU */ { 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 (tmp & (1 << (width-1)) ? 1 : 0); SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); m68k_dreg(regs, (extra >> 12) & 7) = tmp; }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_eac0_0)(uae_u32 opcode) /* BFCHG */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_ead0_0)(uae_u32 opcode) /* BFCHG */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_eae8_0)(uae_u32 opcode) /* BFCHG */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_eaf0_0)(uae_u32 opcode) /* BFCHG */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); } }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_eaf8_0)(uae_u32 opcode) /* BFCHG */ { {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_eaf9_0)(uae_u32 opcode) /* BFCHG */ { {{ 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 (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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_ebc0_0)(uae_u32 opcode) /* BFEXTS */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_ebd0_0)(uae_u32 opcode) /* BFEXTS */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_ebe8_0)(uae_u32 opcode) /* BFEXTS */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_ebf0_0)(uae_u32 opcode) /* BFEXTS */ { uae_u32 dstreg = opcode & 7; {{ 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 (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; }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_ebf8_0)(uae_u32 opcode) /* BFEXTS */ { {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_ebf9_0)(uae_u32 opcode) /* BFEXTS */ { {{ 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 (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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_ebfa_0)(uae_u32 opcode) /* BFEXTS */ { 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_ebfb_0)(uae_u32 opcode) /* BFEXTS */ { 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 (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; }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_ecc0_0)(uae_u32 opcode) /* BFCLR */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_ecd0_0)(uae_u32 opcode) /* BFCLR */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_ece8_0)(uae_u32 opcode) /* BFCLR */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_ecf0_0)(uae_u32 opcode) /* BFCLR */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); } }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_ecf8_0)(uae_u32 opcode) /* BFCLR */ { {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_ecf9_0)(uae_u32 opcode) /* BFCLR */ { {{ 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 (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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_edc0_0)(uae_u32 opcode) /* BFFFO */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_edd0_0)(uae_u32 opcode) /* BFFFO */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_ede8_0)(uae_u32 opcode) /* BFFFO */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_edf0_0)(uae_u32 opcode) /* BFFFO */ { uae_u32 dstreg = opcode & 7; {{ 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 (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; }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_edf8_0)(uae_u32 opcode) /* BFFFO */ { {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_edf9_0)(uae_u32 opcode) /* BFFFO */ { {{ 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 (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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_edfa_0)(uae_u32 opcode) /* BFFFO */ { 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_edfb_0)(uae_u32 opcode) /* BFFFO */ { 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 (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; }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_eec0_0)(uae_u32 opcode) /* BFSET */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_eed0_0)(uae_u32 opcode) /* BFSET */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_eee8_0)(uae_u32 opcode) /* BFSET */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_eef0_0)(uae_u32 opcode) /* BFSET */ { uae_u32 dstreg = opcode & 7; {{ 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 (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); } }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_eef8_0)(uae_u32 opcode) /* BFSET */ { {{ 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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_eef9_0)(uae_u32 opcode) /* BFSET */ { {{ 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 (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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_efc0_0)(uae_u32 opcode) /* BFINS */ { uae_u32 dstreg = opcode & 7; {{ 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 (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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_efd0_0)(uae_u32 opcode) /* BFINS */ { uae_u32 dstreg = opcode & 7; {{ 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 (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 (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); return 8; } unsigned long REGPARAM2 CPUFUNC(op_efe8_0)(uae_u32 opcode) /* BFINS */ { uae_u32 dstreg = opcode & 7; {{ 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 (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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_eff0_0)(uae_u32 opcode) /* BFINS */ { uae_u32 dstreg = opcode & 7; {{ 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 (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 (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); } }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_eff8_0)(uae_u32 opcode) /* BFINS */ { {{ 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 (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 (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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_eff9_0)(uae_u32 opcode) /* BFINS */ { {{ 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 (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 (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); return 16; } unsigned long REGPARAM2 CPUFUNC(op_f200_0)(uae_u32 opcode) /* FPP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f208_0)(uae_u32 opcode) /* FPP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f210_0)(uae_u32 opcode) /* FPP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f218_0)(uae_u32 opcode) /* FPP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f220_0)(uae_u32 opcode) /* FPP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f228_0)(uae_u32 opcode) /* FPP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f230_0)(uae_u32 opcode) /* FPP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f238_0)(uae_u32 opcode) /* FPP */ { {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f239_0)(uae_u32 opcode) /* FPP */ { {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f23a_0)(uae_u32 opcode) /* FPP */ { uae_u32 dstreg = 2; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f23b_0)(uae_u32 opcode) /* FPP */ { uae_u32 dstreg = 3; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f23c_0)(uae_u32 opcode) /* FPP */ { {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fpp_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f240_0)(uae_u32 opcode) /* FScc */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fscc_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f248_0)(uae_u32 opcode) /* FDBcc */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fdbcc_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f250_0)(uae_u32 opcode) /* FScc */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fscc_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f258_0)(uae_u32 opcode) /* FScc */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fscc_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f260_0)(uae_u32 opcode) /* FScc */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fscc_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f268_0)(uae_u32 opcode) /* FScc */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fscc_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f270_0)(uae_u32 opcode) /* FScc */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fscc_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f278_0)(uae_u32 opcode) /* FScc */ { {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fscc_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f279_0)(uae_u32 opcode) /* FScc */ { {{ uae_s16 extra = get_iword(2); m68k_incpc(4); fscc_opp(opcode,extra); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f27a_0)(uae_u32 opcode) /* FTRAPcc */ { {m68k_incpc(2); { uaecptr oldpc = m68k_getpc(); { uae_s16 dummy = get_iword(0); m68k_incpc(2); ftrapcc_opp(opcode,oldpc); }}}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f27b_0)(uae_u32 opcode) /* FTRAPcc */ { {m68k_incpc(2); { uaecptr oldpc = m68k_getpc(); { uae_s32 dummy = get_ilong(0); m68k_incpc(4); ftrapcc_opp(opcode,oldpc); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_f27c_0)(uae_u32 opcode) /* FTRAPcc */ { {m68k_incpc(2); { uaecptr oldpc = m68k_getpc(); ftrapcc_opp(opcode,oldpc); }}return 4; } unsigned long REGPARAM2 CPUFUNC(op_f280_0)(uae_u32 opcode) /* FBcc */ { uae_u32 srcreg = (opcode & 63); {m68k_incpc(2); { uaecptr pc = m68k_getpc(); { uae_s16 extra = get_iword(0); m68k_incpc(2); fbcc_opp(opcode,pc,extra); }}}return 8; } unsigned long REGPARAM2 CPUFUNC(op_f2c0_0)(uae_u32 opcode) /* FBcc */ { uae_u32 srcreg = (opcode & 63); {m68k_incpc(2); { uaecptr pc = m68k_getpc(); { uae_s32 extra = get_ilong(0); m68k_incpc(4); fbcc_opp(opcode,pc,extra); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_f310_0)(uae_u32 opcode) /* FSAVE */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel1827; } {m68k_incpc(2); fsave_opp(opcode); }}endlabel1827: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f320_0)(uae_u32 opcode) /* FSAVE */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel1828; } {m68k_incpc(2); fsave_opp(opcode); }}endlabel1828: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f328_0)(uae_u32 opcode) /* FSAVE */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel1829; } {m68k_incpc(2); fsave_opp(opcode); }}endlabel1829: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f330_0)(uae_u32 opcode) /* FSAVE */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel1830; } {m68k_incpc(2); fsave_opp(opcode); }}endlabel1830: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f338_0)(uae_u32 opcode) /* FSAVE */ { {if (!regs.s) { Exception(8,0); goto endlabel1831; } {m68k_incpc(2); fsave_opp(opcode); }}endlabel1831: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f339_0)(uae_u32 opcode) /* FSAVE */ { {if (!regs.s) { Exception(8,0); goto endlabel1832; } {m68k_incpc(2); fsave_opp(opcode); }}endlabel1832: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f350_0)(uae_u32 opcode) /* FRESTORE */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel1833; } {m68k_incpc(2); frestore_opp(opcode); }}endlabel1833: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f358_0)(uae_u32 opcode) /* FRESTORE */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel1834; } {m68k_incpc(2); frestore_opp(opcode); }}endlabel1834: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f368_0)(uae_u32 opcode) /* FRESTORE */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel1835; } {m68k_incpc(2); frestore_opp(opcode); }}endlabel1835: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f370_0)(uae_u32 opcode) /* FRESTORE */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel1836; } {m68k_incpc(2); frestore_opp(opcode); }}endlabel1836: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f378_0)(uae_u32 opcode) /* FRESTORE */ { {if (!regs.s) { Exception(8,0); goto endlabel1837; } {m68k_incpc(2); frestore_opp(opcode); }}endlabel1837: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f379_0)(uae_u32 opcode) /* FRESTORE */ { {if (!regs.s) { Exception(8,0); goto endlabel1838; } {m68k_incpc(2); frestore_opp(opcode); }}endlabel1838: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f37a_0)(uae_u32 opcode) /* FRESTORE */ { {if (!regs.s) { Exception(8,0); goto endlabel1839; } {m68k_incpc(2); frestore_opp(opcode); }}endlabel1839: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f37b_0)(uae_u32 opcode) /* FRESTORE */ { {if (!regs.s) { Exception(8,0); goto endlabel1840; } {m68k_incpc(2); frestore_opp(opcode); }}endlabel1840: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f408_0)(uae_u32 opcode) /* CINVL */ { uae_u32 srcreg = ((opcode >> 6) & 3); uae_u32 dstreg = opcode & 7; {if (!regs.s) { Exception(8,0); goto endlabel1841; } {}}m68k_incpc(2); endlabel1841: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f410_0)(uae_u32 opcode) /* CINVP */ { uae_u32 srcreg = ((opcode >> 6) & 3); uae_u32 dstreg = opcode & 7; {if (!regs.s) { Exception(8,0); goto endlabel1842; } {}}m68k_incpc(2); endlabel1842: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f418_0)(uae_u32 opcode) /* CINVA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1843; } {}}m68k_incpc(2); endlabel1843: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f419_0)(uae_u32 opcode) /* CINVA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1844; } {}}m68k_incpc(2); endlabel1844: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f41a_0)(uae_u32 opcode) /* CINVA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1845; } {}}m68k_incpc(2); endlabel1845: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f41b_0)(uae_u32 opcode) /* CINVA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1846; } {}}m68k_incpc(2); endlabel1846: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f41c_0)(uae_u32 opcode) /* CINVA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1847; } {}}m68k_incpc(2); endlabel1847: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f41d_0)(uae_u32 opcode) /* CINVA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1848; } {}}m68k_incpc(2); endlabel1848: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f41e_0)(uae_u32 opcode) /* CINVA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1849; } {}}m68k_incpc(2); endlabel1849: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f41f_0)(uae_u32 opcode) /* CINVA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1850; } {}}m68k_incpc(2); endlabel1850: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f428_0)(uae_u32 opcode) /* CPUSHL */ { uae_u32 srcreg = ((opcode >> 6) & 3); uae_u32 dstreg = opcode & 7; {if (!regs.s) { Exception(8,0); goto endlabel1851; } {}}m68k_incpc(2); endlabel1851: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f430_0)(uae_u32 opcode) /* CPUSHP */ { uae_u32 srcreg = ((opcode >> 6) & 3); uae_u32 dstreg = opcode & 7; {if (!regs.s) { Exception(8,0); goto endlabel1852; } {}}m68k_incpc(2); endlabel1852: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f438_0)(uae_u32 opcode) /* CPUSHA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1853; } {}}m68k_incpc(2); endlabel1853: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f439_0)(uae_u32 opcode) /* CPUSHA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1854; } {}}m68k_incpc(2); endlabel1854: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f43a_0)(uae_u32 opcode) /* CPUSHA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1855; } {}}m68k_incpc(2); endlabel1855: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f43b_0)(uae_u32 opcode) /* CPUSHA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1856; } {}}m68k_incpc(2); endlabel1856: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f43c_0)(uae_u32 opcode) /* CPUSHA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1857; } {}}m68k_incpc(2); endlabel1857: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f43d_0)(uae_u32 opcode) /* CPUSHA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1858; } {}}m68k_incpc(2); endlabel1858: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f43e_0)(uae_u32 opcode) /* CPUSHA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1859; } {}}m68k_incpc(2); endlabel1859: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f43f_0)(uae_u32 opcode) /* CPUSHA */ { uae_u32 srcreg = ((opcode >> 6) & 3); {if (!regs.s) { Exception(8,0); goto endlabel1860; } {}}m68k_incpc(2); endlabel1860: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_f500_0)(uae_u32 opcode) /* MMUOP */ { uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 3) & 255); uae_u32 dstreg = opcode & 7; {{ uae_u32 extra = srcreg; m68k_incpc(2); mmu_op(opcode,extra); }}return 4; } unsigned long REGPARAM2 CPUFUNC(op_f600_0)(uae_u32 opcode) /* MOVE16 */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_f608_0)(uae_u32 opcode) /* MOVE16 */ { uae_u32 dstreg = opcode & 7; {{ 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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_f610_0)(uae_u32 opcode) /* MOVE16 */ { uae_u32 srcreg = (opcode & 7); {{ 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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_f618_0)(uae_u32 opcode) /* MOVE16 */ { uae_u32 dstreg = opcode & 7; {{ 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); return 12; } unsigned long REGPARAM2 CPUFUNC(op_f620_0)(uae_u32 opcode) /* MOVE16 */ { uae_u32 srcreg = (opcode & 7); 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); return 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 #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 unsigned long REGPARAM2 CPUFUNC(op_30_3)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_70_3)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_b0_3)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); { uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 34; } unsigned long REGPARAM2 CPUFUNC(op_130_3)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_13b_3)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 3; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr tmppc = m68k_getpc() + 2; uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_170_3)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_17b_3)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 3; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr tmppc = m68k_getpc() + 2; uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_1b0_3)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_1bb_3)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 3; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr tmppc = m68k_getpc() + 2; uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_1f0_3)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_1fb_3)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 3; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr tmppc = m68k_getpc() + 2; uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_230_3)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_270_3)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_2b0_3)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); { uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 34; } unsigned long REGPARAM2 CPUFUNC(op_430_3)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_470_3)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_4b0_3)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(8); return 34; } unsigned long REGPARAM2 CPUFUNC(op_630_3)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_670_3)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_6b0_3)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(8); return 34; } unsigned long REGPARAM2 CPUFUNC(op_830_3)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); return 18; } unsigned long REGPARAM2 CPUFUNC(op_83b_3)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = 3; {{ uae_s16 src = get_iword(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); return 18; } unsigned long REGPARAM2 CPUFUNC(op_870_3)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_87b_3)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = 3; {{ uae_s16 src = get_iword(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_8b0_3)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_8bb_3)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = 3; {{ uae_s16 src = get_iword(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_8f0_3)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_8fb_3)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = 3; {{ uae_s16 src = get_iword(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); put_byte(dsta,dst); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_a30_3)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_a70_3)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } #endif #ifdef PART_2 unsigned long REGPARAM2 CPUFUNC(op_ab0_3)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); { uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 34; } unsigned long REGPARAM2 CPUFUNC(op_c30_3)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 18; } unsigned long REGPARAM2 CPUFUNC(op_c3b_3)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 3; {{ uae_s8 src = get_ibyte(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 18; } unsigned long REGPARAM2 CPUFUNC(op_c70_3)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 18; } unsigned long REGPARAM2 CPUFUNC(op_c7b_3)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 3; {{ uae_s16 src = get_iword(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(6); return 18; } unsigned long REGPARAM2 CPUFUNC(op_cb0_3)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(8); return 26; } unsigned long REGPARAM2 CPUFUNC(op_cbb_3)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 3; {{ uae_s32 src = get_ilong(2); { uaecptr tmppc = m68k_getpc() + 6; uaecptr dsta = get_disp_ea_000(tmppc, get_iword(6)); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(8); return 26; } unsigned long REGPARAM2 CPUFUNC(op_1030_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_103b_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_10b0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_10bb_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_10f0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_10fb_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_1130_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_113b_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_1170_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_117b_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_1180_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_1190_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_1198_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_11a0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_11a8_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_11b0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 24; } unsigned long REGPARAM2 CPUFUNC(op_11b8_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_11b9_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(8); return 26; } unsigned long REGPARAM2 CPUFUNC(op_11ba_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_11bb_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 24; } unsigned long REGPARAM2 CPUFUNC(op_11bc_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}m68k_incpc(6); return 18; } unsigned long REGPARAM2 CPUFUNC(op_11f0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_11fb_3)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_13f0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(8); return 26; } unsigned long REGPARAM2 CPUFUNC(op_13fb_3)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(8); return 26; } unsigned long REGPARAM2 CPUFUNC(op_2030_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_203b_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_2070_3)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_207b_3)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_20b0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_20bb_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_20f0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_20fb_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_2130_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 28; } unsigned long REGPARAM2 CPUFUNC(op_213b_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 28; } #endif #ifdef PART_3 unsigned long REGPARAM2 CPUFUNC(op_2170_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_217b_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_2180_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_2188_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_2190_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_2198_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_21a0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; { uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 28; } unsigned long REGPARAM2 CPUFUNC(op_21a8_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_21b0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 32; } unsigned long REGPARAM2 CPUFUNC(op_21b8_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_21b9_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 34; } unsigned long REGPARAM2 CPUFUNC(op_21ba_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_21bb_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 32; } unsigned long REGPARAM2 CPUFUNC(op_21bc_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}m68k_incpc(8); return 26; } unsigned long REGPARAM2 CPUFUNC(op_21f0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_21fb_3)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(6); return 30; } unsigned long REGPARAM2 CPUFUNC(op_23f0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 34; } unsigned long REGPARAM2 CPUFUNC(op_23fb_3)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(8); return 34; } unsigned long REGPARAM2 CPUFUNC(op_3030_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_303b_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_3070_3)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_307b_3)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_30b0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_30bb_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_30f0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_30fb_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_3130_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_313b_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_3170_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_317b_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_3180_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_3188_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_3190_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_3198_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_31a0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; { uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_31a8_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_31b0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 24; } unsigned long REGPARAM2 CPUFUNC(op_31b8_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_31b9_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong(2); { uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(8); return 26; } unsigned long REGPARAM2 CPUFUNC(op_31ba_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword(2); { uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_31bb_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 24; } unsigned long REGPARAM2 CPUFUNC(op_31bc_3)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}m68k_incpc(6); return 18; } unsigned long REGPARAM2 CPUFUNC(op_31f0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_31fb_3)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(6); return 22; } unsigned long REGPARAM2 CPUFUNC(op_33f0_3)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(8); return 26; } unsigned long REGPARAM2 CPUFUNC(op_33fb_3)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong(4); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(8); return 26; } unsigned long REGPARAM2 CPUFUNC(op_4030_3)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); put_byte(srca,newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_4070_3)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); put_word(srca,newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_40b0_3)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); put_long(srca,newv); }}}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_40f0_3)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel1988; } {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); MakeSR(); put_word(srca,regs.sr); }}}m68k_incpc(4); endlabel1988: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4130_3)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel1989; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel1989; } }}}}m68k_incpc(4); endlabel1989: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_413b_3)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel1990; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel1990; } }}}}m68k_incpc(4); endlabel1990: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_41b0_3)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel1991; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel1991; } }}}}m68k_incpc(4); endlabel1991: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_41bb_3)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel1992; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel1992; } }}}}m68k_incpc(4); endlabel1992: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_41f0_3)(uae_u32 opcode) /* LEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_41fb_3)(uae_u32 opcode) /* LEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4230_3)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); put_byte(srca,0); }}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_4270_3)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); put_word(srca,0); }}m68k_incpc(4); return 18; } #endif #ifdef PART_4 unsigned long REGPARAM2 CPUFUNC(op_42b0_3)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); put_long(srca,0); }}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_42f0_3)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); MakeSR(); put_word(srca,regs.sr & 0xff); }}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_4430_3)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(dst)) < 0; SET_ZFLG (((uae_s8)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(srca,dst); }}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_4470_3)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(dst)) < 0; SET_ZFLG (((uae_s16)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(srca,dst); }}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_44b0_3)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(dst)) < 0; SET_ZFLG (((uae_s32)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(srca,dst); }}}}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_44f0_3)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}m68k_incpc(4); return 22; } unsigned long REGPARAM2 CPUFUNC(op_44fb_3)(uae_u32 opcode) /* MV2SR */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}m68k_incpc(4); return 22; } unsigned long REGPARAM2 CPUFUNC(op_4630_3)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); put_byte(srca,dst); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_4670_3)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); put_word(srca,dst); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_46b0_3)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); put_long(srca,dst); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_46f0_3)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel2007; } {{ 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); endlabel2007: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_46fb_3)(uae_u32 opcode) /* MV2SR */ { {if (!regs.s) { Exception(8,0); goto endlabel2008; } {{ 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); endlabel2008: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_4830_3)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = - (src & 0xF0); uae_u16 newv; int cflg; if (newv_lo > 9) { newv_lo -= 6; } newv = 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); return 18; } unsigned long REGPARAM2 CPUFUNC(op_4870_3)(uae_u32 opcode) /* PEA */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uaecptr dsta = m68k_areg(regs, 7) - 4; m68k_areg (regs, 7) = dsta; put_long(dsta,srca); }}}m68k_incpc(4); return 22; } unsigned long REGPARAM2 CPUFUNC(op_487b_3)(uae_u32 opcode) /* PEA */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uaecptr dsta = m68k_areg(regs, 7) - 4; m68k_areg (regs, 7) = dsta; put_long(dsta,srca); }}}m68k_incpc(4); return 22; } unsigned long REGPARAM2 CPUFUNC(op_48b0_3)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=4; } while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(6); return (14+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48f0_3)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); retcycles = 0; { 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]; retcycles+=8; } while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(6); return (14+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4a30_3)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4a3b_3)(uae_u32 opcode) /* TST */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4a70_3)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4a7b_3)(uae_u32 opcode) /* TST */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4ab0_3)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_4abb_3)(uae_u32 opcode) /* TST */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_4af0_3)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; put_byte(srca,src); }}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_4cb0_3)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(6); return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cbb_3)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = 3; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}m68k_incpc(6); return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cf0_3)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(6); return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cfb_3)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = 3; unsigned int retcycles; { uae_u16 mask = get_iword(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { 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]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}m68k_incpc(6); return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4eb0_3)(uae_u32 opcode) /* JSR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); m68k_do_jsr(m68k_getpc() + 4, srca); }}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4ebb_3)(uae_u32 opcode) /* JSR */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); m68k_do_jsr(m68k_getpc() + 4, srca); }}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4ef0_3)(uae_u32 opcode) /* JMP */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); m68k_setpc(srca); }}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4efb_3)(uae_u32 opcode) /* JMP */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); m68k_setpc(srca); }}return 14; } unsigned long REGPARAM2 CPUFUNC(op_5030_3)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } #endif #ifdef PART_5 unsigned long REGPARAM2 CPUFUNC(op_5070_3)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_50b0_3)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_50f0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(0) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_5130_3)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_5170_3)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_51b0_3)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_51f0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(1) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_52f0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(2) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_53f0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(3) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_54f0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(4) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_55f0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(5) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_56f0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(6) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_57f0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(7) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_58f0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(8) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_59f0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(9) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_5af0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(10) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_5bf0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(11) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_5cf0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(12) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_5df0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(13) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_5ef0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(14) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_5ff0_3)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { int val = cctrue(15) ? 0xff : 0; put_byte(srca,val); }}}m68k_incpc(4); return 18; } #endif #ifdef PART_6 unsigned long REGPARAM2 CPUFUNC(op_60ff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(0)) goto endlabel2051; 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 endlabel2051; { uae_s32 src = get_ilong(2); if (!cctrue(0)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2051: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_62ff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(2)) goto endlabel2052; 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 endlabel2052; { uae_s32 src = get_ilong(2); if (!cctrue(2)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2052: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_63ff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(3)) goto endlabel2053; 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 endlabel2053; { uae_s32 src = get_ilong(2); if (!cctrue(3)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2053: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_64ff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(4)) goto endlabel2054; 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 endlabel2054; { uae_s32 src = get_ilong(2); if (!cctrue(4)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2054: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_65ff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(5)) goto endlabel2055; 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 endlabel2055; { uae_s32 src = get_ilong(2); if (!cctrue(5)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2055: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_66ff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(6)) goto endlabel2056; 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 endlabel2056; { uae_s32 src = get_ilong(2); if (!cctrue(6)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2056: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_67ff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(7)) goto endlabel2057; 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 endlabel2057; { uae_s32 src = get_ilong(2); if (!cctrue(7)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2057: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_68ff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(8)) goto endlabel2058; 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 endlabel2058; { uae_s32 src = get_ilong(2); if (!cctrue(8)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2058: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_69ff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(9)) goto endlabel2059; 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 endlabel2059; { uae_s32 src = get_ilong(2); if (!cctrue(9)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2059: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6aff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(10)) goto endlabel2060; 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 endlabel2060; { uae_s32 src = get_ilong(2); if (!cctrue(10)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2060: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6bff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(11)) goto endlabel2061; 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 endlabel2061; { uae_s32 src = get_ilong(2); if (!cctrue(11)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2061: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6cff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(12)) goto endlabel2062; 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 endlabel2062; { uae_s32 src = get_ilong(2); if (!cctrue(12)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2062: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6dff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(13)) goto endlabel2063; 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 endlabel2063; { uae_s32 src = get_ilong(2); if (!cctrue(13)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2063: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6eff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(14)) goto endlabel2064; 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 endlabel2064; { uae_s32 src = get_ilong(2); if (!cctrue(14)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2064: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6fff_3)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(15)) 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(15)) goto didnt_jump; m68k_incpc ((uae_s32)src + 2); return 10; didnt_jump:; }}m68k_incpc(6); endlabel2065: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_8030_3)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_803b_3)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_8070_3)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_807b_3)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_80b0_3)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_80bb_3)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_80f0_3)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel2072; } 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); } } }}}}endlabel2072: ; return 150; } unsigned long REGPARAM2 CPUFUNC(op_80fb_3)(uae_u32 opcode) /* DIVU */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel2073; } 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); } } }}}}endlabel2073: ; return 150; } unsigned long REGPARAM2 CPUFUNC(op_8130_3)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_8170_3)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_81b0_3)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_81f0_3)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel2077; } 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); } } }}}}endlabel2077: ; return 168; } unsigned long REGPARAM2 CPUFUNC(op_81fb_3)(uae_u32 opcode) /* DIVS */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel2078; } 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); } } }}}}endlabel2078: ; return 168; } unsigned long REGPARAM2 CPUFUNC(op_9030_3)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_903b_3)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_9070_3)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_907b_3)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_90b0_3)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_90bb_3)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_90f0_3)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_90fb_3)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_9130_3)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_9170_3)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_91b0_3)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_91f0_3)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_91fb_3)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_b030_3)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b03b_3)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 14; } #endif #ifdef PART_7 unsigned long REGPARAM2 CPUFUNC(op_b070_3)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b07b_3)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b0b0_3)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_b0bb_3)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_b0f0_3)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b0fb_3)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b130_3)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_b170_3)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_b1b0_3)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_b1f0_3)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_b1fb_3)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_c030_3)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c03b_3)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c070_3)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c07b_3)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c0b0_3)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_c0bb_3)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_c0f0_3)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 80; } unsigned long REGPARAM2 CPUFUNC(op_c0fb_3)(uae_u32 opcode) /* MULU */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 80; } unsigned long REGPARAM2 CPUFUNC(op_c130_3)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); put_byte(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_c170_3)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); put_word(dsta,src); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_c1b0_3)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); put_long(dsta,src); }}}}m68k_incpc(4); return 26; } unsigned long REGPARAM2 CPUFUNC(op_c1f0_3)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 80; } unsigned long REGPARAM2 CPUFUNC(op_c1fb_3)(uae_u32 opcode) /* MULS */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 80; } unsigned long REGPARAM2 CPUFUNC(op_d030_3)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d03b_3)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d070_3)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d07b_3)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}}m68k_incpc(4); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d0b0_3)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_d0bb_3)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_d0f0_3)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d0fb_3)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s16 src = get_word(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d130_3)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_byte(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d170_3)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s16 dst = get_word(dsta); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_word(dsta,newv); }}}}}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_d1b0_3)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); { uae_s32 dst = get_long(dsta); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); put_long(dsta,newv); }}}}}}}m68k_incpc(4); return 26; } #endif #ifdef PART_8 unsigned long REGPARAM2 CPUFUNC(op_d1f0_3)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_d1fb_3)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); { uae_s32 src = get_long(srca); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}}m68k_incpc(4); return 20; } unsigned long REGPARAM2 CPUFUNC(op_e0f0_3)(uae_u32 opcode) /* ASRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 cflg = val & 1; val = (val >> 1) | sign; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (cflg); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_e1f0_3)(uae_u32 opcode) /* ASLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 sign = 0x8000 & val; uae_u32 sign2; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); sign2 = 0x8000 & val; SET_CFLG (sign != 0); COPY_CARRY; SET_VFLG (GET_VFLG | (sign2 != sign)); put_word(dataa,val); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_e2f0_3)(uae_u32 opcode) /* LSRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 data = get_word(dataa); { uae_u32 val = (uae_u16)data; uae_u32 carry = val & 1; val >>= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_e3f0_3)(uae_u32 opcode) /* LSLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_e4f0_3)(uae_u32 opcode) /* ROXRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (GET_XFLG) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_e5f0_3)(uae_u32 opcode) /* ROXLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (GET_XFLG) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); COPY_CARRY; put_word(dataa,val); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_e6f0_3)(uae_u32 opcode) /* RORW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 1; val >>= 1; if (carry) val |= 0x8000; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry); put_word(dataa,val); }}}}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_e7f0_3)(uae_u32 opcode) /* ROLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); { uae_s16 data = get_word(dataa); { uae_u16 val = data; uae_u32 carry = val & 0x8000; val <<= 1; if (carry) val |= 1; CLEAR_CZNV; SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); SET_CFLG (carry >> 15); put_word(dataa,val); }}}}m68k_incpc(4); return 18; } #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 unsigned long REGPARAM2 CPUFUNC(op_40c0_4)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ MakeSR(); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); }}m68k_incpc(2); return 6; } unsigned long REGPARAM2 CPUFUNC(op_40d0_4)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); MakeSR(); put_word(srca,regs.sr); }}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_40d8_4)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += 2; MakeSR(); put_word(srca,regs.sr); }}m68k_incpc(2); return 12; } unsigned long REGPARAM2 CPUFUNC(op_40e0_4)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; m68k_areg (regs, srcreg) = srca; MakeSR(); put_word(srca,regs.sr); }}m68k_incpc(2); return 14; } unsigned long REGPARAM2 CPUFUNC(op_40e8_4)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); MakeSR(); put_word(srca,regs.sr); }}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_40f0_4)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); MakeSR(); put_word(srca,regs.sr); }}m68k_incpc(4); return 18; } unsigned long REGPARAM2 CPUFUNC(op_40f8_4)(uae_u32 opcode) /* MVSR2 */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); MakeSR(); put_word(srca,regs.sr); }}m68k_incpc(4); return 16; } unsigned long REGPARAM2 CPUFUNC(op_40f9_4)(uae_u32 opcode) /* MVSR2 */ { {{ uaecptr srca = get_ilong(2); MakeSR(); put_word(srca,regs.sr); }}m68k_incpc(6); return 20; } #endif #ifdef PART_4 unsigned long REGPARAM2 CPUFUNC(op_4e73_4)(uae_u32 opcode) /* RTE */ { {if (!regs.s) { Exception(8,0); goto endlabel2147; } {{ 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(); }}}}}}endlabel2147: ; return 20; } #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 unsigned long REGPARAM2 CPUFUNC(op_0_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_10_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_18_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_20_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_28_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_30_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_38_5)(uae_u32 opcode) /* OR */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_39_5)(uae_u32 opcode) /* OR */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_3c_5)(uae_u32 opcode) /* ORSR */ { { MakeSR(); { uae_s16 src = get_iword_prefetch(2); src &= 0xFF; regs.sr |= src; MakeFromSR(); }}m68k_incpc(4); fill_prefetch_0 (); return 20; } unsigned long REGPARAM2 CPUFUNC(op_40_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_50_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2158; } {{ uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2158: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_58_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2159; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2159: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_60_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2160; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2160: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_68_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2161; } {{ uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2161: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_70_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2162; } {{ uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2162: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_78_5)(uae_u32 opcode) /* OR */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2163; } {{ uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2163: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_79_5)(uae_u32 opcode) /* OR */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2164; } {{ uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2164: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_7c_5)(uae_u32 opcode) /* ORSR */ { {if (!regs.s) { Exception(8,0); goto endlabel2165; } { MakeSR(); { uae_s16 src = get_iword_prefetch(2); regs.sr |= src; MakeFromSR(); }}}m68k_incpc(4); fill_prefetch_0 (); endlabel2165: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_80_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_90_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2167; } {{ uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2167: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_98_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2168; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2168: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_a0_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2169; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2169: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_a8_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2170; } {{ uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2170: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_b0_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2171; } {{ uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2171: ; return 34; } unsigned long REGPARAM2 CPUFUNC(op_b8_5)(uae_u32 opcode) /* OR */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2172; } {{ uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2172: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_b9_5)(uae_u32 opcode) /* OR */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_ilong_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 10; Exception(3, 0); goto endlabel2173; } {{ uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(10); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2173: ; return 36; } unsigned long REGPARAM2 CPUFUNC(op_100_5)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_108_5)(uae_u32 opcode) /* MVPMR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_110_5)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_118_5)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_120_5)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(2); fill_prefetch_2 (); return 10; } unsigned long REGPARAM2 CPUFUNC(op_128_5)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_130_5)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_138_5)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_139_5)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_13a_5)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 2; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_getpc () + 2; dsta += (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_13b_5)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 3; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr tmppc = m68k_getpc() + 2; uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_13c_5)(uae_u32 opcode) /* BTST */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = get_ibyte_prefetch(2); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}m68k_incpc(4); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_140_5)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_dreg(regs, dstreg) = (dst); }}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_148_5)(uae_u32 opcode) /* MVPMR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 24; } unsigned long REGPARAM2 CPUFUNC(op_150_5)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,dst); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_158_5)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,dst); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_160_5)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,dst); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_168_5)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_170_5)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_178_5)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_179_5)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_17a_5)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 2; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_getpc () + 2; dsta += (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_17b_5)(uae_u32 opcode) /* BCHG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 3; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr tmppc = m68k_getpc() + 2; uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(2)); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_180_5)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_dreg(regs, dstreg) = (dst); }}}m68k_incpc(2); fill_prefetch_2 (); return 10; } unsigned long REGPARAM2 CPUFUNC(op_188_5)(uae_u32 opcode) /* MVPRM */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); put_byte(memp, src >> 8); put_byte(memp + 2, src); }}m68k_incpc(4); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_190_5)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,dst); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_198_5)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,dst); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_1a0_5)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,dst); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_1a8_5)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_1b0_5)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_1b8_5)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_1b9_5)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_1ba_5)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 2; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_getpc () + 2; dsta += (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_1bb_5)(uae_u32 opcode) /* BCLR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 3; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr tmppc = m68k_getpc() + 2; uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_1c0_5)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_dreg(regs, dstreg) = (dst); }}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_1c8_5)(uae_u32 opcode) /* MVPRM */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 24; } unsigned long REGPARAM2 CPUFUNC(op_1d0_5)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,dst); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_1d8_5)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,dst); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_1e0_5)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,dst); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_1e8_5)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_1f0_5)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_1f8_5)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_1f9_5)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_1fa_5)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 2; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_getpc () + 2; dsta += (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_1fb_5)(uae_u32 opcode) /* BSET */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = 3; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr tmppc = m68k_getpc() + 2; uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(2)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_200_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_210_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_218_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_220_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_228_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_230_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_238_5)(uae_u32 opcode) /* AND */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_239_5)(uae_u32 opcode) /* AND */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_23c_5)(uae_u32 opcode) /* ANDSR */ { { MakeSR(); { uae_s16 src = get_iword_prefetch(2); src |= 0xFF00; regs.sr &= src; MakeFromSR(); }}m68k_incpc(4); fill_prefetch_0 (); return 20; } unsigned long REGPARAM2 CPUFUNC(op_240_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_250_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2229; } {{ uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2229: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_258_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2230; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2230: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_260_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2231; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2231: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_268_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2232; } {{ uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2232: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_270_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2233; } {{ uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2233: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_278_5)(uae_u32 opcode) /* AND */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2234; } {{ uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2234: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_279_5)(uae_u32 opcode) /* AND */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2235; } {{ uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2235: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_27c_5)(uae_u32 opcode) /* ANDSR */ { {if (!regs.s) { Exception(8,0); goto endlabel2236; } { MakeSR(); { uae_s16 src = get_iword_prefetch(2); regs.sr &= src; MakeFromSR(); }}}m68k_incpc(4); fill_prefetch_0 (); endlabel2236: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_280_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_290_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2238; } {{ uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2238: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_298_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2239; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2239: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_2a0_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2240; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2240: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_2a8_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2241; } {{ uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2241: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_2b0_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2242; } {{ uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2242: ; return 34; } unsigned long REGPARAM2 CPUFUNC(op_2b8_5)(uae_u32 opcode) /* AND */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2243; } {{ uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2243: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_2b9_5)(uae_u32 opcode) /* AND */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_ilong_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 10; Exception(3, 0); goto endlabel2244; } {{ uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(10); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2244: ; return 36; } unsigned long REGPARAM2 CPUFUNC(op_400_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_410_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_418_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_420_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_428_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_430_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_438_5)(uae_u32 opcode) /* SUB */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_439_5)(uae_u32 opcode) /* SUB */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_ilong_prefetch(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); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_440_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_450_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2254; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2254: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_458_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2255; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2255: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_460_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2256; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2256: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_468_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2257; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2257: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_470_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2258; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2258: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_478_5)(uae_u32 opcode) /* SUB */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2259; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2259: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_479_5)(uae_u32 opcode) /* SUB */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2260; } {{ 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); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2260: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_480_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_490_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2262; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2262: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_498_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2263; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2263: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_4a0_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2264; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2264: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_4a8_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2265; } {{ 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); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2265: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_4b0_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2266; } {{ 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); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2266: ; return 34; } unsigned long REGPARAM2 CPUFUNC(op_4b8_5)(uae_u32 opcode) /* SUB */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2267; } {{ 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); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2267: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_4b9_5)(uae_u32 opcode) /* SUB */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_ilong_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 10; Exception(3, 0); goto endlabel2268; } {{ 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); m68k_incpc(10); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2268: ; return 36; } unsigned long REGPARAM2 CPUFUNC(op_600_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_610_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_618_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_620_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_628_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_630_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_638_5)(uae_u32 opcode) /* ADD */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_639_5)(uae_u32 opcode) /* ADD */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_ilong_prefetch(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); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_640_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_650_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2278; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2278: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_658_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2279; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2279: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_660_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2280; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2280: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_668_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2281; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2281: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_670_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2282; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2282: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_678_5)(uae_u32 opcode) /* ADD */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2283; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2283: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_679_5)(uae_u32 opcode) /* ADD */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2284; } {{ 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); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2284: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_680_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_690_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2286; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2286: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_698_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2287; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2287: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_6a0_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2288; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2288: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_6a8_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2289; } {{ 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); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2289: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_6b0_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2290; } {{ 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); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2290: ; return 34; } unsigned long REGPARAM2 CPUFUNC(op_6b8_5)(uae_u32 opcode) /* ADD */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2291; } {{ 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); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2291: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_6b9_5)(uae_u32 opcode) /* ADD */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_ilong_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 10; Exception(3, 0); goto endlabel2292; } {{ 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); m68k_incpc(10); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2292: ; return 36; } unsigned long REGPARAM2 CPUFUNC(op_800_5)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= 31; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}m68k_incpc(4); fill_prefetch_0 (); return 10; } unsigned long REGPARAM2 CPUFUNC(op_810_5)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(4); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_818_5)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_820_5)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_828_5)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_830_5)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); fill_prefetch_0 (); return 18; } unsigned long REGPARAM2 CPUFUNC(op_838_5)(uae_u32 opcode) /* BTST */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_839_5)(uae_u32 opcode) /* BTST */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(8); fill_prefetch_0 (); return 20; } unsigned long REGPARAM2 CPUFUNC(op_83a_5)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = 2; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_83b_5)(uae_u32 opcode) /* BTST */ { uae_u32 dstreg = 3; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}}m68k_incpc(6); fill_prefetch_0 (); return 18; } unsigned long REGPARAM2 CPUFUNC(op_83c_5)(uae_u32 opcode) /* BTST */ { {{ uae_s16 src = get_iword_prefetch(2); { uae_s8 dst = get_ibyte_prefetch(4); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); }}}m68k_incpc(6); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_840_5)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_850_5)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_858_5)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_860_5)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_868_5)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_870_5)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_878_5)(uae_u32 opcode) /* BCHG */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_879_5)(uae_u32 opcode) /* BCHG */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_87a_5)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = 2; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_87b_5)(uae_u32 opcode) /* BCHG */ { uae_u32 dstreg = 3; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(4)); { uae_s8 dst = get_byte(dsta); src &= 7; dst ^= (1 << src); SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_880_5)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_890_5)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_898_5)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_8a0_5)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_8a8_5)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_8b0_5)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_8b8_5)(uae_u32 opcode) /* BCLR */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_8b9_5)(uae_u32 opcode) /* BCLR */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_8ba_5)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = 2; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_8bb_5)(uae_u32 opcode) /* BCLR */ { uae_u32 dstreg = 3; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst &= ~(1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_8c0_5)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8d0_5)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_8d8_5)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_8e0_5)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_8e8_5)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_8f0_5)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_8f8_5)(uae_u32 opcode) /* BSET */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_8f9_5)(uae_u32 opcode) /* BSET */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_8fa_5)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = 2; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_8fb_5)(uae_u32 opcode) /* BSET */ { uae_u32 dstreg = 3; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(4)); { uae_s8 dst = get_byte(dsta); src &= 7; SET_ZFLG (1 ^ ((dst >> src) & 1)); dst |= (1 << src); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,dst); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_a00_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_a10_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_a18_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_a20_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_a28_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_a30_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_a38_5)(uae_u32 opcode) /* EOR */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_a39_5)(uae_u32 opcode) /* EOR */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_a3c_5)(uae_u32 opcode) /* EORSR */ { { MakeSR(); { uae_s16 src = get_iword_prefetch(2); src &= 0xFF; regs.sr ^= src; MakeFromSR(); }}m68k_incpc(4); fill_prefetch_0 (); return 20; } unsigned long REGPARAM2 CPUFUNC(op_a40_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_a50_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2344; } {{ uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2344: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_a58_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2345; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2345: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_a60_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2346; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2346: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_a68_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2347; } {{ uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2347: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_a70_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2348; } {{ uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2348: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_a78_5)(uae_u32 opcode) /* EOR */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2349; } {{ uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2349: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_a79_5)(uae_u32 opcode) /* EOR */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2350; } {{ uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel2350: ; return 24; } #endif #ifdef PART_2 unsigned long REGPARAM2 CPUFUNC(op_a7c_5)(uae_u32 opcode) /* EORSR */ { {if (!regs.s) { Exception(8,0); goto endlabel2351; } { MakeSR(); { uae_s16 src = get_iword_prefetch(2); regs.sr ^= src; MakeFromSR(); }}}m68k_incpc(4); fill_prefetch_0 (); endlabel2351: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_a80_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_a90_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2353; } {{ uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2353: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_a98_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2354; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2354: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_aa0_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2355; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2355: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_aa8_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2356; } {{ uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2356: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_ab0_5)(uae_u32 opcode) /* EOR */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2357; } {{ uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2357: ; return 34; } unsigned long REGPARAM2 CPUFUNC(op_ab8_5)(uae_u32 opcode) /* EOR */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2358; } {{ uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2358: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_ab9_5)(uae_u32 opcode) /* EOR */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_ilong_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 10; Exception(3, 0); goto endlabel2359; } {{ uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(10); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel2359: ; return 36; } unsigned long REGPARAM2 CPUFUNC(op_c00_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c10_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c18_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c20_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c28_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c30_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(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); fill_prefetch_0 (); return 18; } unsigned long REGPARAM2 CPUFUNC(op_c38_5)(uae_u32 opcode) /* CMP */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c39_5)(uae_u32 opcode) /* CMP */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_ilong_prefetch(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); fill_prefetch_0 (); return 20; } unsigned long REGPARAM2 CPUFUNC(op_c3a_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 2; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c3b_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 3; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(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); fill_prefetch_0 (); return 18; } unsigned long REGPARAM2 CPUFUNC(op_c40_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c50_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2371; } {{ 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); fill_prefetch_0 (); endlabel2371: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_c58_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2372; } {{ 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); fill_prefetch_0 (); endlabel2372: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_c60_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2373; } {{ 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); fill_prefetch_0 (); endlabel2373: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_c68_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2374; } {{ 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); fill_prefetch_0 (); endlabel2374: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_c70_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2375; } {{ 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); fill_prefetch_0 (); endlabel2375: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_c78_5)(uae_u32 opcode) /* CMP */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2376; } {{ 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); fill_prefetch_0 (); endlabel2376: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_c79_5)(uae_u32 opcode) /* CMP */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2377; } {{ 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); fill_prefetch_0 (); endlabel2377: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_c7a_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 2; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_getpc () + 4; dsta += (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2378; } {{ 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); fill_prefetch_0 (); endlabel2378: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_c7b_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 3; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr tmppc = m68k_getpc() + 4; uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2379; } {{ 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); fill_prefetch_0 (); endlabel2379: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_c80_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c90_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2381; } {{ 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); fill_prefetch_0 (); endlabel2381: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_c98_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2382; } {{ 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); fill_prefetch_0 (); endlabel2382: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_ca0_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2383; } {{ 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); fill_prefetch_0 (); endlabel2383: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_ca8_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2384; } {{ 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); fill_prefetch_0 (); endlabel2384: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_cb0_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = opcode & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2385; } {{ 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); fill_prefetch_0 (); endlabel2385: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_cb8_5)(uae_u32 opcode) /* CMP */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2386; } {{ 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); fill_prefetch_0 (); endlabel2386: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_cb9_5)(uae_u32 opcode) /* CMP */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_ilong_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 10; Exception(3, 0); goto endlabel2387; } {{ 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); fill_prefetch_0 (); endlabel2387: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_cba_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 2; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_getpc () + 6; dsta += (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2388; } {{ 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); fill_prefetch_0 (); endlabel2388: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_cbb_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = 3; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr tmppc = m68k_getpc() + 6; uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(6)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2389; } {{ 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); fill_prefetch_0 (); endlabel2389: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_1000_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_1010_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_1018_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_1020_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); fill_prefetch_2 (); return 10; } unsigned long REGPARAM2 CPUFUNC(op_1028_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_1030_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_1038_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_1039_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_103a_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_103b_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_103c_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_1080_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}return 8; } unsigned long REGPARAM2 CPUFUNC(op_1090_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_1098_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_10a0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_10a8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_10b0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_10b8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_10b9_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_10ba_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_10bb_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_10bc_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_10c0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}return 8; } unsigned long REGPARAM2 CPUFUNC(op_10d0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_10d8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = m68k_areg(regs, dstreg); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_10e0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_10e8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_10f0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_10f8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_10f9_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_10fa_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_10fb_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_10fc_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_1100_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}return 10; } unsigned long REGPARAM2 CPUFUNC(op_1110_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_1118_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_1120_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_1128_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_1130_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_1138_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_1139_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_113a_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_113b_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_113c_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_1140_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_1150_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_1158_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_1160_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_1168_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_1170_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_1178_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_1179_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_117a_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_117b_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_117c_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_1180_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_1190_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_1198_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_11a0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_11a8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_11b0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_11b8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_11b9_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_11ba_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_11bb_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_11bc_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_11c0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_11d0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_11d8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_11e0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_11e8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_11f0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_11f8_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_11f9_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_11fa_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_11fb_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_11fc_5)(uae_u32 opcode) /* MOVE */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_13c0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_13d0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_13d8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = get_ilong_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_13e0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_ilong_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_13e8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_13f0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_13f8_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_13f9_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong_prefetch(6); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(10); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 28; } unsigned long REGPARAM2 CPUFUNC(op_13fa_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 24; } unsigned long REGPARAM2 CPUFUNC(op_13fb_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); { uae_s8 src = get_byte(srca); { uaecptr dsta = get_ilong_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 26; } unsigned long REGPARAM2 CPUFUNC(op_13fc_5)(uae_u32 opcode) /* MOVE */ { {{ uae_s8 src = get_ibyte_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_byte(dsta,src); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_2000_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_2008_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_2010_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2480; } {{ 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); fill_prefetch_2 (); endlabel2480: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_2018_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2481; } {{ 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); fill_prefetch_2 (); endlabel2481: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_2020_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2482; } {{ 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); fill_prefetch_2 (); endlabel2482: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_2028_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2483; } {{ 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); fill_prefetch_0 (); endlabel2483: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_2030_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2484; } {{ 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); fill_prefetch_0 (); endlabel2484: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_2038_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2485; } {{ 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); fill_prefetch_0 (); endlabel2485: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_2039_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2486; } {{ 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); fill_prefetch_0 (); endlabel2486: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_203a_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2487; } {{ 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); fill_prefetch_0 (); endlabel2487: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_203b_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2488; } {{ 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); fill_prefetch_0 (); endlabel2488: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_203c_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(2); { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(6); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_2040_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_2048_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_2050_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2492; } {{ uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2492: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_2058_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2493; } {{ uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2493: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_2060_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2494; } {{ uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2494: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_2068_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2495; } {{ uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2495: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_2070_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2496; } {{ uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2496: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_2078_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2497; } {{ uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2497: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_2079_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2498; } {{ uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2498: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_207a_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2499; } {{ uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2499: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_207b_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2500; } {{ uae_s32 src = get_long(srca); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2500: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_207c_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uae_u32 val = src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(6); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_2080_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2502; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}endlabel2502: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_2088_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2503; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}endlabel2503: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_2090_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2504; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2504; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}}endlabel2504: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_2098_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2505; } {{ uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2505; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}}endlabel2505: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_20a0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2506; } {{ uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2506; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}}endlabel2506: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_20a8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2507; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2507; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2507: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_20b0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2508; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2508; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2508: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_20b8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2509; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2509; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2509: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_20b9_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2510; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2510; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2510: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_20ba_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2511; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2511; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2511: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_20bb_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2512; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2512; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2512: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_20bc_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2513; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2513: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_20c0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2514; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}endlabel2514: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_20c8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2515; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}endlabel2515: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_20d0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2516; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2516; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}}endlabel2516: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_20d8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2517; } {{ uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2517; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}}endlabel2517: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_20e0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2518; } {{ uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2518; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}}endlabel2518: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_20e8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2519; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2519; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2519: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_20f0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2520; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2520; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2520: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_20f8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2521; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2521; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2521: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_20f9_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2522; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2522; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2522: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_20fa_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2523; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2523; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2523: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_20fb_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2524; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2524; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2524: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_20fc_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2525; } { m68k_areg(regs, dstreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2525: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_2100_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2526; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}endlabel2526: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_2108_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2527; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}endlabel2527: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_2110_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2528; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2528; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}}endlabel2528: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_2118_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2529; } {{ uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2529; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}}endlabel2529: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_2120_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2530; } {{ uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2530; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}}endlabel2530: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_2128_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2531; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2531; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2531: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_2130_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2532; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2532; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2532: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_2138_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2533; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2533; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2533: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_2139_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2534; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2534; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2534: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_213a_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2535; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2535; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2535: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_213b_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2536; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2536; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2536: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_213c_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2537; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2537: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_2140_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2538; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2538: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_2148_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2539; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2539: ; return 16; } #endif #ifdef PART_3 unsigned long REGPARAM2 CPUFUNC(op_2150_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2540; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2540; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2540: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_2158_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2541; } {{ uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2541; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2541: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_2160_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2542; } {{ uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2542; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2542: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_2168_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2543; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2543; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2543: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_2170_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2544; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2544; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2544: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_2178_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2545; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2545; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2545: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_2179_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2546; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2546; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2546: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_217a_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2547; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2547; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2547: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_217b_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2548; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2548; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2548: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_217c_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2549; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2549: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_2180_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2550; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2550: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_2188_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2551; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2551: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_2190_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2552; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2552; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2552: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_2198_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2553; } {{ uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2553; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2553: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_21a0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2554; } {{ uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2554; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2554: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_21a8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2555; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2555; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2555: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_21b0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2556; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2556; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2556: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_21b8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2557; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2557; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2557: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_21b9_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2558; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2558; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2558: ; return 34; } unsigned long REGPARAM2 CPUFUNC(op_21ba_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2559; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2559; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2559: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_21bb_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2560; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2560; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2560: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_21bc_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2561; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2561: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_21c0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2562; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2562: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_21c8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2563; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2563: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_21d0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2564; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2564; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2564: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_21d8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2565; } {{ uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2565; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2565: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_21e0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2566; } {{ uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2566; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2566: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_21e8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2567; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2567; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2567: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_21f0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2568; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2568; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2568: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_21f8_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2569; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2569; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2569: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_21f9_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2570; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2570; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2570: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_21fa_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2571; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2571; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2571: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_21fb_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2572; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2572; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2572: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_21fc_5)(uae_u32 opcode) /* MOVE */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2573; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2573: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_23c0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2574; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2574: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_23c8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_areg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2575; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2575: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_23d0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2576; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2576; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2576: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_23d8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2577; } {{ uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2577; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2577: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_23e0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2578; } {{ uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2578; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2578: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_23e8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2579; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2579; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2579: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_23f0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2580; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2580; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2580: ; return 34; } unsigned long REGPARAM2 CPUFUNC(op_23f8_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2581; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2581; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2581: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_23f9_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2582; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 10; Exception(3, 0); goto endlabel2582; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(10); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2582: ; return 36; } unsigned long REGPARAM2 CPUFUNC(op_23fa_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2583; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2583; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2583: ; return 32; } unsigned long REGPARAM2 CPUFUNC(op_23fb_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2584; } {{ uae_s32 src = get_long(srca); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2584; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_long(dsta,src); }}}}}}endlabel2584: ; return 34; } unsigned long REGPARAM2 CPUFUNC(op_23fc_5)(uae_u32 opcode) /* MOVE */ { {{ uae_s32 src = get_ilong_prefetch(2); { uaecptr dsta = get_ilong_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 10; Exception(3, 0); goto endlabel2585; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(10); fill_prefetch_0 (); put_long(dsta,src); }}}}endlabel2585: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_3000_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_3008_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_3010_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2588; } {{ 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); fill_prefetch_2 (); endlabel2588: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_3018_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2589; } {{ 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); fill_prefetch_2 (); endlabel2589: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_3020_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2590; } {{ 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); fill_prefetch_2 (); endlabel2590: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_3028_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2591; } {{ 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); fill_prefetch_0 (); endlabel2591: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_3030_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2592; } {{ 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); fill_prefetch_0 (); endlabel2592: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_3038_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2593; } {{ 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); fill_prefetch_0 (); endlabel2593: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_3039_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2594; } {{ 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); fill_prefetch_0 (); endlabel2594: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_303a_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2595; } {{ 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); fill_prefetch_0 (); endlabel2595: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_303b_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2596; } {{ 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); fill_prefetch_0 (); endlabel2596: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_303c_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_3040_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_3048_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_3050_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2600; } {{ uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2600: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_3058_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2601; } {{ 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); fill_prefetch_2 (); endlabel2601: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_3060_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2602; } {{ 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); fill_prefetch_2 (); endlabel2602: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_3068_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2603; } {{ uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2603: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_3070_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2604; } {{ uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2604: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_3078_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2605; } {{ uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2605: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_3079_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2606; } {{ uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2606: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_307a_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2607; } {{ uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2607: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_307b_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2608; } {{ uae_s16 src = get_word(srca); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2608: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_307c_5)(uae_u32 opcode) /* MOVEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(2); { uae_u32 val = (uae_s32)(uae_s16)src; m68k_areg(regs, dstreg) = (val); }}}m68k_incpc(4); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_3080_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2610; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}endlabel2610: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_3088_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2611; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}endlabel2611: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_3090_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2612; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2612; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}}endlabel2612: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_3098_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2613; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2613; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}}endlabel2613: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_30a0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2614; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2614; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}}endlabel2614: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_30a8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2615; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2615; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2615: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_30b0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2616; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2616; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2616: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_30b8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2617; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2617; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2617: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_30b9_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2618; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2618; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2618: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_30ba_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2619; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2619; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2619: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_30bb_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2620; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2620; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2620: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_30bc_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2621; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2621: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_30c0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2622; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}endlabel2622: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_30c8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2623; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}endlabel2623: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_30d0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2624; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2624; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}}endlabel2624: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_30d8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2625; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2625; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}}endlabel2625: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_30e0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2626; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2626; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}}endlabel2626: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_30e8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2627; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2627; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2627: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_30f0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2628; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2628; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2628: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_30f8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2629; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2629; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2629: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_30f9_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2630; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2630; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2630: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_30fa_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2631; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2631; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2631: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_30fb_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2632; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2632; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2632: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_30fc_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2633; } { m68k_areg(regs, dstreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2633: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_3100_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2634; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}endlabel2634: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_3108_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2635; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}endlabel2635: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_3110_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2636; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2636; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}}endlabel2636: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_3118_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2637; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2637; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}}endlabel2637: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_3120_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2638; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2638; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}}endlabel2638: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_3128_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2639; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2639; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2639: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_3130_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2640; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2640; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2640: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_3138_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2641; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2641; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2641: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_3139_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2642; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2642; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2642: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_313a_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2643; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2643; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2643: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_313b_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2644; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2644; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2644: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_313c_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2645; } { m68k_areg (regs, dstreg) = dsta; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2645: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_3140_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2646; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2646: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_3148_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2647; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2647: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_3150_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2648; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2648; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2648: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_3158_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2649; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2649; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2649: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_3160_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2650; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2650; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2650: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_3168_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2651; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2651; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2651: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_3170_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2652; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2652; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2652: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_3178_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2653; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2653; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2653: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_3179_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2654; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2654; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2654: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_317a_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2655; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2655; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2655: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_317b_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2656; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2656; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2656: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_317c_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2657; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2657: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_3180_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2658; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2658: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_3188_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2659; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2659: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_3190_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2660; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2660; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2660: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_3198_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2661; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2661; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2661: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_31a0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2662; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2662; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2662: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_31a8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2663; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2663; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2663: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_31b0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2664; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2664; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2664: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_31b8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2665; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2665; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2665: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_31b9_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2666; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2666; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2666: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_31ba_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2667; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2667; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2667: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_31bb_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2668; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2668; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2668: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_31bc_5)(uae_u32 opcode) /* MOVE */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2669; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2669: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_31c0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2670; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2670: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_31c8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2671; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2671: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_31d0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2672; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2672; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2672: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_31d8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2673; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2673; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2673: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_31e0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2674; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2674; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2674: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_31e8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2675; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2675; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2675: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_31f0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2676; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2676; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2676: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_31f8_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2677; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2677; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2677: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_31f9_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2678; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2678; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2678: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_31fa_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2679; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2679; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2679: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_31fb_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2680; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2680; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2680: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_31fc_5)(uae_u32 opcode) /* MOVE */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2681; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2681: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_33c0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2682; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2682: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_33c8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_areg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2683; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2683: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_33d0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2684; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2684; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2684: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_33d8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2685; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2685; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2685: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_33e0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2686; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2686; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2686: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_33e8_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2687; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2687; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2687: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_33f0_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2688; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2688; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2688: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_33f8_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2689; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2689; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2689: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_33f9_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2690; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong_prefetch(6); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 10; Exception(3, 0); goto endlabel2690; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(10); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2690: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_33fa_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2691; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2691; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2691: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_33fb_5)(uae_u32 opcode) /* MOVE */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2692; } {{ uae_s16 src = get_word(srca); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2692; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}}}endlabel2692: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_33fc_5)(uae_u32 opcode) /* MOVE */ { {{ uae_s16 src = get_iword_prefetch(2); { uaecptr dsta = get_ilong_prefetch(4); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2693; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(8); fill_prefetch_0 (); put_word(dsta,src); }}}}endlabel2693: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4000_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff); }}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4010_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,newv); }}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4018_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,newv); }}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4020_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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_incpc(2); fill_prefetch_2 (); put_byte(srca,newv); }}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4028_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,newv); }}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4030_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,newv); }}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4038_5)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,newv); }}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4039_5)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = get_ilong_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,newv); }}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4040_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((newv) & 0xffff); }}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4050_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2703; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,newv); }}}}}}endlabel2703: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4058_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2704; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,newv); }}}}}}endlabel2704: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4060_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2705; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,newv); }}}}}}endlabel2705: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_4068_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2706; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,newv); }}}}}}endlabel2706: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4070_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2707; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,newv); }}}}}}endlabel2707: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4078_5)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2708; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,newv); }}}}}}endlabel2708: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4079_5)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2709; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(srca,newv); }}}}}}endlabel2709: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4080_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, srcreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_4090_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2711; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,newv); }}}}}}endlabel2711: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4098_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2712; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,newv); }}}}}}endlabel2712: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_40a0_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2713; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,newv); }}}}}}endlabel2713: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_40a8_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2714; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,newv); }}}}}}endlabel2714: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_40b0_5)(uae_u32 opcode) /* NEGX */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2715; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,newv); }}}}}}endlabel2715: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_40b8_5)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2716; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,newv); }}}}}}endlabel2716: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_40b9_5)(uae_u32 opcode) /* NEGX */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2717; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(srca,newv); }}}}}}endlabel2717: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_40c0_5)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ MakeSR(); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); }}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_40d0_5)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2719; } { MakeSR(); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,regs.sr); }}}endlabel2719: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_40d8_5)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2720; } { m68k_areg(regs, srcreg) += 2; MakeSR(); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,regs.sr); }}}endlabel2720: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_40e0_5)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2721; } { m68k_areg (regs, srcreg) = srca; MakeSR(); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,regs.sr); }}}endlabel2721: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_40e8_5)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2722; } { MakeSR(); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,regs.sr); }}}endlabel2722: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_40f0_5)(uae_u32 opcode) /* MVSR2 */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2723; } { MakeSR(); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,regs.sr); }}}endlabel2723: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_40f8_5)(uae_u32 opcode) /* MVSR2 */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2724; } { MakeSR(); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,regs.sr); }}}endlabel2724: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_40f9_5)(uae_u32 opcode) /* MVSR2 */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2725; } { MakeSR(); m68k_incpc(6); fill_prefetch_0 (); put_word(srca,regs.sr); }}}endlabel2725: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4100_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel2726; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2726; } }}}m68k_incpc(2); fill_prefetch_2 (); endlabel2726: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_4110_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2727; } {{ 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 endlabel2727; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2727; } }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2727: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4118_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2728; } {{ 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 endlabel2728; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2728; } }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2728: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4120_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2729; } {{ 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 endlabel2729; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2729; } }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2729: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4128_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2730; } {{ 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 endlabel2730; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2730; } }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2730: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_4130_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2731; } {{ 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 endlabel2731; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2731; } }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2731: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_4138_5)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2732; } {{ 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 endlabel2732; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2732; } }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2732: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_4139_5)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2733; } {{ 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 endlabel2733; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2733; } }}}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2733: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_413a_5)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2734; } {{ 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 endlabel2734; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2734; } }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2734: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_413b_5)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2735; } {{ 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 endlabel2735; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2735; } }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2735: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_413c_5)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s32 src = get_ilong_prefetch(2); { uae_s32 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel2736; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2736; } }}}m68k_incpc(6); fill_prefetch_0 (); endlabel2736: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4180_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel2737; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2737; } }}}m68k_incpc(2); fill_prefetch_2 (); endlabel2737: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_4190_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2738; } {{ 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 endlabel2738; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2738; } }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2738: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_4198_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2739; } {{ 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 endlabel2739; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2739; } }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2739: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_41a0_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2740; } {{ 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 endlabel2740; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2740; } }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2740: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_41a8_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2741; } {{ 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 endlabel2741; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2741; } }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2741: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_41b0_5)(uae_u32 opcode) /* CHK */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2742; } {{ 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 endlabel2742; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2742; } }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2742: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_41b8_5)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2743; } {{ 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 endlabel2743; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2743; } }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2743: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_41b9_5)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2744; } {{ 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 endlabel2744; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2744; } }}}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2744: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_41ba_5)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2745; } {{ 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 endlabel2745; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2745; } }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2745: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_41bb_5)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2746; } {{ 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 endlabel2746; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2746; } }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2746: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_41bc_5)(uae_u32 opcode) /* CHK */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = get_iword_prefetch(2); { uae_s16 dst = m68k_dreg(regs, dstreg); if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel2747; } else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel2747; } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel2747: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_41d0_5)(uae_u32 opcode) /* LEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_41e8_5)(uae_u32 opcode) /* LEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(4); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_41f0_5)(uae_u32 opcode) /* LEA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(4); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_41f8_5)(uae_u32 opcode) /* LEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(4); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_41f9_5)(uae_u32 opcode) /* LEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(6); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_41fa_5)(uae_u32 opcode) /* LEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(4); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_41fb_5)(uae_u32 opcode) /* LEA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); { m68k_areg(regs, dstreg) = (srca); }}}m68k_incpc(4); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4200_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((0) & 0xff); }}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4210_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,0); }}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4218_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,0); }}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4220_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,0); }}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4228_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,0); }}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4230_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,0); }}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4238_5)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,0); }}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4239_5)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = get_ilong_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(0)) == 0); SET_NFLG (((uae_s8)(0)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,0); }}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4240_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((0) & 0xffff); }}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4250_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2764; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,0); }}}endlabel2764: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4258_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2765; } { m68k_areg(regs, srcreg) += 2; CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,0); }}}endlabel2765: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4260_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2766; } { m68k_areg (regs, srcreg) = srca; CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,0); }}}endlabel2766: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_4268_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2767; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,0); }}}endlabel2767: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4270_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2768; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,0); }}}endlabel2768: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4278_5)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2769; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,0); }}}endlabel2769: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4279_5)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2770; } { CLEAR_CZNV; SET_ZFLG (((uae_s16)(0)) == 0); SET_NFLG (((uae_s16)(0)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(srca,0); }}}endlabel2770: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4280_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); m68k_dreg(regs, srcreg) = (0); }}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_4290_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2772; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,0); }}}endlabel2772: ; return 20; } #endif #ifdef PART_4 unsigned long REGPARAM2 CPUFUNC(op_4298_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2773; } { m68k_areg(regs, srcreg) += 4; CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,0); }}}endlabel2773: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_42a0_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2774; } { m68k_areg (regs, srcreg) = srca; CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,0); }}}endlabel2774: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_42a8_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2775; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,0); }}}endlabel2775: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_42b0_5)(uae_u32 opcode) /* CLR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2776; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,0); }}}endlabel2776: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_42b8_5)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2777; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,0); }}}endlabel2777: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_42b9_5)(uae_u32 opcode) /* CLR */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2778; } { CLEAR_CZNV; SET_ZFLG (((uae_s32)(0)) == 0); SET_NFLG (((uae_s32)(0)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(srca,0); }}}endlabel2778: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_4400_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(dst)) < 0; SET_ZFLG (((uae_s8)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff); }}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4410_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(dst)) < 0; SET_ZFLG (((uae_s8)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,dst); }}}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4418_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(0)) < 0; int flgn = ((uae_s8)(dst)) < 0; SET_ZFLG (((uae_s8)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,dst); }}}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4420_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; {{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_incpc(2); fill_prefetch_2 (); put_byte(srca,dst); }}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4428_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,dst); }}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4430_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,dst); }}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4438_5)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,dst); }}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4439_5)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = get_ilong_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,dst); }}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4440_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(0)) < 0; int flgn = ((uae_s16)(dst)) < 0; SET_ZFLG (((uae_s16)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); }}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4450_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2788; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,dst); }}}}}}}endlabel2788: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4458_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2789; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,dst); }}}}}}}endlabel2789: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4460_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2790; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,dst); }}}}}}}endlabel2790: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_4468_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2791; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,dst); }}}}}}}endlabel2791: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4470_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2792; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,dst); }}}}}}}endlabel2792: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4478_5)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2793; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,dst); }}}}}}}endlabel2793: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4479_5)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2794; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(srca,dst); }}}}}}}endlabel2794: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4480_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(0)) < 0; int flgn = ((uae_s32)(dst)) < 0; SET_ZFLG (((uae_s32)(dst)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, srcreg) = (dst); }}}}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_4490_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2796; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,dst); }}}}}}}endlabel2796: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4498_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2797; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,dst); }}}}}}}endlabel2797: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_44a0_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2798; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,dst); }}}}}}}endlabel2798: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_44a8_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2799; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,dst); }}}}}}}endlabel2799: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_44b0_5)(uae_u32 opcode) /* NEG */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2800; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,dst); }}}}}}}endlabel2800: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_44b8_5)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2801; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,dst); }}}}}}}endlabel2801: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_44b9_5)(uae_u32 opcode) /* NEG */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2802; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(srca,dst); }}}}}}}endlabel2802: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_44c0_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}m68k_incpc(2); fill_prefetch_2 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_44d0_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2804; } {{ uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2804: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_44d8_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2805; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2805: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_44e0_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2806; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2806: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_44e8_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2807; } {{ uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2807: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_44f0_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2808; } {{ uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2808: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_44f8_5)(uae_u32 opcode) /* MV2SR */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2809; } {{ uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2809: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_44f9_5)(uae_u32 opcode) /* MV2SR */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2810; } {{ uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2810: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_44fa_5)(uae_u32 opcode) /* MV2SR */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2811; } {{ uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2811: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_44fb_5)(uae_u32 opcode) /* MV2SR */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2812; } {{ uae_s16 src = get_word(srca); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2812: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_44fc_5)(uae_u32 opcode) /* MV2SR */ { {{ uae_s16 src = get_iword_prefetch(2); MakeSR(); regs.sr &= 0xFF00; regs.sr |= src & 0xFF; MakeFromSR(); }}m68k_incpc(4); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4600_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4610_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,dst); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4618_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,dst); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4620_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s8)(dst)) == 0); SET_NFLG (((uae_s8)(dst)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,dst); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4628_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4630_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,dst); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4638_5)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,dst); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4639_5)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = get_ilong_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,dst); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4640_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4650_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2823; } {{ uae_s16 src = get_word(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,dst); }}}}}endlabel2823: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4658_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2824; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,dst); }}}}}endlabel2824: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4660_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2825; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(srca,dst); }}}}}endlabel2825: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_4668_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2826; } {{ uae_s16 src = get_word(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,dst); }}}}}endlabel2826: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4670_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2827; } {{ uae_s16 src = get_word(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,dst); }}}}}endlabel2827: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4678_5)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2828; } {{ uae_s16 src = get_word(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(srca,dst); }}}}}endlabel2828: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4679_5)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2829; } {{ uae_s16 src = get_word(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(srca,dst); }}}}}endlabel2829: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4680_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_dreg(regs, srcreg) = (dst); }}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_4690_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2831; } {{ uae_s32 src = get_long(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,dst); }}}}}endlabel2831: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4698_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2832; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,dst); }}}}}endlabel2832: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_46a0_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2833; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(srca,dst); }}}}}endlabel2833: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_46a8_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2834; } {{ uae_s32 src = get_long(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,dst); }}}}}endlabel2834: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_46b0_5)(uae_u32 opcode) /* NOT */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2835; } {{ uae_s32 src = get_long(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,dst); }}}}}endlabel2835: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_46b8_5)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2836; } {{ uae_s32 src = get_long(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(srca,dst); }}}}}endlabel2836: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_46b9_5)(uae_u32 opcode) /* NOT */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2837; } {{ uae_s32 src = get_long(srca); { uae_u32 dst = ~src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(srca,dst); }}}}}endlabel2837: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_46c0_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel2838; } {{ uae_s16 src = m68k_dreg(regs, srcreg); regs.sr = src; MakeFromSR(); }}}m68k_incpc(2); fill_prefetch_2 (); endlabel2838: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_46d0_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel2839; } {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2839; } {{ uae_s16 src = get_word(srca); regs.sr = src; MakeFromSR(); }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2839: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_46d8_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel2840; } {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2840; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; regs.sr = src; MakeFromSR(); }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2840: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_46e0_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel2841; } {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2841; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; regs.sr = src; MakeFromSR(); }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2841: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_46e8_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel2842; } {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2842; } {{ uae_s16 src = get_word(srca); regs.sr = src; MakeFromSR(); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2842: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_46f0_5)(uae_u32 opcode) /* MV2SR */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel2843; } {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2843; } {{ uae_s16 src = get_word(srca); regs.sr = src; MakeFromSR(); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2843: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_46f8_5)(uae_u32 opcode) /* MV2SR */ { {if (!regs.s) { Exception(8,0); goto endlabel2844; } {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2844; } {{ uae_s16 src = get_word(srca); regs.sr = src; MakeFromSR(); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2844: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_46f9_5)(uae_u32 opcode) /* MV2SR */ { {if (!regs.s) { Exception(8,0); goto endlabel2845; } {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2845; } {{ uae_s16 src = get_word(srca); regs.sr = src; MakeFromSR(); }}}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2845: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_46fa_5)(uae_u32 opcode) /* MV2SR */ { {if (!regs.s) { Exception(8,0); goto endlabel2846; } {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2846; } {{ uae_s16 src = get_word(srca); regs.sr = src; MakeFromSR(); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2846: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_46fb_5)(uae_u32 opcode) /* MV2SR */ { {if (!regs.s) { Exception(8,0); goto endlabel2847; } {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2847; } {{ uae_s16 src = get_word(srca); regs.sr = src; MakeFromSR(); }}}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2847: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_46fc_5)(uae_u32 opcode) /* MV2SR */ { {if (!regs.s) { Exception(8,0); goto endlabel2848; } {{ uae_s16 src = get_iword_prefetch(2); regs.sr = src; MakeFromSR(); }}}m68k_incpc(4); fill_prefetch_0 (); endlabel2848: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4800_5)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = - (src & 0xF0); uae_u16 newv; int cflg; if (newv_lo > 9) { newv_lo -= 6; } newv = 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); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_4810_5)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = - (src & 0xF0); uae_u16 newv; int cflg; if (newv_lo > 9) { newv_lo -= 6; } newv = 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_incpc(2); fill_prefetch_2 (); put_byte(srca,newv); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4818_5)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = - (src & 0xF0); uae_u16 newv; int cflg; if (newv_lo > 9) { newv_lo -= 6; } newv = 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_incpc(2); fill_prefetch_2 (); put_byte(srca,newv); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4820_5)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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_incpc(2); fill_prefetch_2 (); put_byte(srca,newv); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4828_5)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,newv); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4830_5)(uae_u32 opcode) /* NBCD */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,newv); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4838_5)(uae_u32 opcode) /* NBCD */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,newv); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4839_5)(uae_u32 opcode) /* NBCD */ { {{ uaecptr srca = get_ilong_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,newv); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4840_5)(uae_u32 opcode) /* SWAP */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_dreg(regs, srcreg) = (dst); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4850_5)(uae_u32 opcode) /* PEA */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, 7) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2858; } { m68k_areg (regs, 7) = dsta; m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,srca); }}}}endlabel2858: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4868_5)(uae_u32 opcode) /* PEA */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, 7) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2859; } { m68k_areg (regs, 7) = dsta; m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,srca); }}}}endlabel2859: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4870_5)(uae_u32 opcode) /* PEA */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { uaecptr dsta = m68k_areg(regs, 7) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2860; } { m68k_areg (regs, 7) = dsta; m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,srca); }}}}endlabel2860: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_4878_5)(uae_u32 opcode) /* PEA */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, 7) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2861; } { m68k_areg (regs, 7) = dsta; m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,srca); }}}}endlabel2861: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4879_5)(uae_u32 opcode) /* PEA */ { {{ uaecptr srca = get_ilong_prefetch(2); { uaecptr dsta = m68k_areg(regs, 7) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2862; } { m68k_areg (regs, 7) = dsta; m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,srca); }}}}endlabel2862: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_487a_5)(uae_u32 opcode) /* PEA */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); { uaecptr dsta = m68k_areg(regs, 7) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2863; } { m68k_areg (regs, 7) = dsta; m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,srca); }}}}endlabel2863: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_487b_5)(uae_u32 opcode) /* PEA */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); { uaecptr dsta = m68k_areg(regs, 7) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2864; } { m68k_areg (regs, 7) = dsta; m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,srca); }}}}endlabel2864: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_4880_5)(uae_u32 opcode) /* EXT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u16 dst = (uae_s16)(uae_s8)src; CLEAR_CZNV; SET_ZFLG (((uae_s16)(dst)) == 0); SET_NFLG (((uae_s16)(dst)) < 0); m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4890_5)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2866; } {m68k_incpc(4); fill_prefetch_0 (); { 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]; retcycles+=4; } while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}endlabel2866: ; return (8+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48a0_5)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg) - 0; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2867; } {m68k_incpc(4); fill_prefetch_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]; retcycles+=4; } while (dmask) { srca -= 2; put_word(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; retcycles+=4; } m68k_areg(regs, dstreg) = srca; }}}}endlabel2867: ; return (8+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48a8_5)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2868; } {m68k_incpc(6); fill_prefetch_0 (); { 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]; retcycles+=4; } while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}endlabel2868: ; return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48b0_5)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2869; } {m68k_incpc(6); fill_prefetch_0 (); { 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]; retcycles+=4; } while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}endlabel2869: ; return (14+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48b8_5)(uae_u32 opcode) /* MVMLE */ { unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2870; } {m68k_incpc(6); fill_prefetch_0 (); { 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]; retcycles+=4; } while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}endlabel2870: ; return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48b9_5)(uae_u32 opcode) /* MVMLE */ { unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = get_ilong_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2871; } {m68k_incpc(8); fill_prefetch_0 (); { 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]; retcycles+=4; } while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}endlabel2871: ; return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48c0_5)(uae_u32 opcode) /* EXT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 dst = (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_dreg(regs, srcreg) = (dst); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_48d0_5)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2873; } {m68k_incpc(4); fill_prefetch_0 (); { 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]; retcycles+=8; } while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}endlabel2873: ; return (8+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48e0_5)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg) - 0; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2874; } {m68k_incpc(4); fill_prefetch_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]; retcycles+=8; } while (dmask) { srca -= 4; put_long(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; retcycles+=8; } m68k_areg(regs, dstreg) = srca; }}}}endlabel2874: ; return (8+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48e8_5)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2875; } {m68k_incpc(6); fill_prefetch_0 (); { 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]; retcycles+=8; } while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}endlabel2875: ; return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48f0_5)(uae_u32 opcode) /* MVMLE */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2876; } {m68k_incpc(6); fill_prefetch_0 (); { 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]; retcycles+=8; } while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}endlabel2876: ; return (14+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48f8_5)(uae_u32 opcode) /* MVMLE */ { unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2877; } {m68k_incpc(6); fill_prefetch_0 (); { 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]; retcycles+=8; } while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}endlabel2877: ; return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_48f9_5)(uae_u32 opcode) /* MVMLE */ { unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); retcycles = 0; { uaecptr srca = get_ilong_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2878; } {m68k_incpc(8); fill_prefetch_0 (); { 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]; retcycles+=8; } while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}endlabel2878: ; return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_49c0_5)(uae_u32 opcode) /* EXT */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_u32 dst = (uae_s32)(uae_s8)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(dst)) == 0); SET_NFLG (((uae_s32)(dst)) < 0); m68k_dreg(regs, srcreg) = (dst); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a00_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a10_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a18_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a20_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(2); fill_prefetch_2 (); return 10; } unsigned long REGPARAM2 CPUFUNC(op_4a28_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(4); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a30_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(4); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4a38_5)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(4); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a39_5)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = get_ilong_prefetch(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(6); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_4a3a_5)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(4); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a3b_5)(uae_u32 opcode) /* TST */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}}m68k_incpc(4); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_4a3c_5)(uae_u32 opcode) /* TST */ { {{ uae_s8 src = get_ibyte_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); }}m68k_incpc(4); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a40_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a48_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_areg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a50_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2893; } {{ uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2893: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a58_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2894; } {{ 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); fill_prefetch_2 (); endlabel2894: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a60_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2895; } {{ 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); fill_prefetch_2 (); endlabel2895: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_4a68_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2896; } {{ uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2896: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a70_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2897; } {{ uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2897: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_4a78_5)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2898; } {{ uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2898: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a79_5)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2899; } {{ uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2899: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4a7a_5)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2900; } {{ uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2900: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a7b_5)(uae_u32 opcode) /* TST */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2901; } {{ uae_s16 src = get_word(srca); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2901: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_4a7c_5)(uae_u32 opcode) /* TST */ { {{ uae_s16 src = get_iword_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); }}m68k_incpc(4); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_4a80_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a88_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_areg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4a90_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2905; } {{ uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2905: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4a98_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2906; } {{ 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); fill_prefetch_2 (); endlabel2906: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4aa0_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2907; } {{ 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); fill_prefetch_2 (); endlabel2907: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_4aa8_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2908; } {{ uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2908: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4ab0_5)(uae_u32 opcode) /* TST */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2909; } {{ uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2909: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4ab8_5)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2910; } {{ uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2910: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4ab9_5)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2911; } {{ uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2911: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4aba_5)(uae_u32 opcode) /* TST */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2912; } {{ uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2912: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4abb_5)(uae_u32 opcode) /* TST */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2913; } {{ uae_s32 src = get_long(srca); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2913: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4abc_5)(uae_u32 opcode) /* TST */ { {{ uae_s32 src = get_ilong_prefetch(2); CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); }}m68k_incpc(6); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_4ac0_5)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((src) & 0xff); }}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4ad0_5)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,src); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4ad8_5)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,src); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4ae0_5)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,src); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4ae8_5)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,src); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4af0_5)(uae_u32 opcode) /* TAS */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,src); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4af8_5)(uae_u32 opcode) /* TAS */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,src); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4af9_5)(uae_u32 opcode) /* TAS */ { {{ uaecptr srca = get_ilong_prefetch(2); { uae_s8 src = get_byte(srca); CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); src |= 0x80; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,src); }}}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4c90_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2923; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2923: ; return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4c98_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2924; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } m68k_areg(regs, dstreg) = srca; }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2924: ; return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4ca8_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2925; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2925: ; return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cb0_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2926; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2926: ; return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cb8_5)(uae_u32 opcode) /* MVMEL */ { unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2927; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2927: ; return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cb9_5)(uae_u32 opcode) /* MVMEL */ { unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = get_ilong_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2928; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}m68k_incpc(8); fill_prefetch_0 (); endlabel2928: ; return (20+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cba_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = 2; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = m68k_getpc () + 4; srca += (uae_s32)(uae_s16)get_iword_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2929; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2929: ; return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cbb_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = 3; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr tmppc = m68k_getpc() + 4; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(4)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2930; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; } while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; } }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2930: ; return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cd0_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2931; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2931: ; return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cd8_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2932; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } m68k_areg(regs, dstreg) = srca; }}}}m68k_incpc(4); fill_prefetch_0 (); endlabel2932: ; return (12+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4ce8_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2933; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2933: ; return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cf0_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = opcode & 7; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2934; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2934: ; return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cf8_5)(uae_u32 opcode) /* MVMEL */ { unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2935; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2935: ; return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cf9_5)(uae_u32 opcode) /* MVMEL */ { unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = get_ilong_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 8; Exception(3, 0); goto endlabel2936; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}m68k_incpc(8); fill_prefetch_0 (); endlabel2936: ; return (20+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cfa_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = 2; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr srca = m68k_getpc () + 4; srca += (uae_s32)(uae_s16)get_iword_prefetch(4); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2937; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2937: ; return (16+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4cfb_5)(uae_u32 opcode) /* MVMEL */ { uae_u32 dstreg = 3; unsigned int retcycles; { uae_u16 mask = get_iword_prefetch(2); unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; retcycles = 0; { uaecptr tmppc = m68k_getpc() + 4; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(4)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2938; } {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; } while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; } }}}}m68k_incpc(6); fill_prefetch_0 (); endlabel2938: ; return (18+retcycles); } unsigned long REGPARAM2 CPUFUNC(op_4e40_5)(uae_u32 opcode) /* TRAP */ { uae_u32 srcreg = (opcode & 15); {{ uae_u32 src = srcreg; m68k_incpc(2); fill_prefetch_2 (); Exception(src+32,0); }}return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e50_5)(uae_u32 opcode) /* LINK */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr olda = m68k_areg(regs, 7) - 4; if ((olda & 1) != 0) { last_fault_for_exception_3 = olda; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2940; } { m68k_areg (regs, 7) = olda; { uae_s32 src = m68k_areg(regs, srcreg); m68k_incpc(2); fill_prefetch_2 (); put_long(olda,src); m68k_areg(regs, srcreg) = (m68k_areg(regs, 7)); { uae_s16 offs = get_iword_prefetch(0); m68k_areg(regs, 7) += offs; }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2940: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_4e58_5)(uae_u32 opcode) /* UNLK */ { uae_u32 srcreg = (opcode & 7); {{ uae_s32 src = m68k_areg(regs, srcreg); m68k_areg(regs, 7) = src; { uaecptr olda = m68k_areg(regs, 7); if ((olda & 1) != 0) { last_fault_for_exception_3 = olda; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2941; } {{ uae_s32 old = get_long(olda); m68k_areg(regs, 7) += 4; m68k_areg(regs, srcreg) = (old); }}}}}m68k_incpc(2); fill_prefetch_2 (); endlabel2941: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_4e60_5)(uae_u32 opcode) /* MVR2USP */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel2942; } {{ uae_s32 src = m68k_areg(regs, srcreg); regs.usp = src; }}}m68k_incpc(2); fill_prefetch_2 (); endlabel2942: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e68_5)(uae_u32 opcode) /* MVUSP2R */ { uae_u32 srcreg = (opcode & 7); {if (!regs.s) { Exception(8,0); goto endlabel2943; } {{ m68k_areg(regs, srcreg) = (regs.usp); }}}m68k_incpc(2); fill_prefetch_2 (); endlabel2943: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e70_5)(uae_u32 opcode) /* RESET */ { {if (!regs.s) { Exception(8,0); goto endlabel2944; } { customreset(); }}m68k_incpc(2); fill_prefetch_2 (); endlabel2944: ; return 132; } unsigned long REGPARAM2 CPUFUNC(op_4e71_5)(uae_u32 opcode) /* NOP */ { {}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e72_5)(uae_u32 opcode) /* STOP */ { {if (!regs.s) { Exception(8,0); goto endlabel2946; } {{ uae_s16 src = get_iword_prefetch(2); regs.sr = src; MakeFromSR(); m68k_setstopped(1); }}}m68k_incpc(4); fill_prefetch_0 (); endlabel2946: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e73_5)(uae_u32 opcode) /* RTE */ { {if (!regs.s) { Exception(8,0); goto endlabel2947; } {{ uaecptr sra = m68k_areg(regs, 7); if ((sra & 1) != 0) { last_fault_for_exception_3 = sra; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2947; } {{ uae_s16 sr = get_word(sra); m68k_areg(regs, 7) += 2; { uaecptr pca = m68k_areg(regs, 7); if ((pca & 1) != 0) { last_fault_for_exception_3 = pca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2947; } {{ uae_s32 pc = get_long(pca); m68k_areg(regs, 7) += 4; regs.sr = sr; m68k_setpc_rte(pc); fill_prefetch_0 (); MakeFromSR(); }}}}}}}}endlabel2947: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4e74_5)(uae_u32 opcode) /* RTD */ { {{ uaecptr pca = m68k_areg(regs, 7); if ((pca & 1) != 0) { last_fault_for_exception_3 = pca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2948; } {{ uae_s32 pc = get_long(pca); m68k_areg(regs, 7) += 4; { uae_s16 offs = get_iword_prefetch(2); m68k_areg(regs, 7) += offs; m68k_setpc_rte(pc); fill_prefetch_0 (); }}}}}endlabel2948: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_4e75_5)(uae_u32 opcode) /* RTS */ { { m68k_do_rts(); fill_prefetch_0 (); }return 16; } unsigned long REGPARAM2 CPUFUNC(op_4e76_5)(uae_u32 opcode) /* TRAPV */ { {m68k_incpc(2); fill_prefetch_2 (); if (GET_VFLG) { Exception(7,m68k_getpc()); goto endlabel2950; } }endlabel2950: ; return 4; } unsigned long REGPARAM2 CPUFUNC(op_4e77_5)(uae_u32 opcode) /* RTR */ { { MakeSR(); { uaecptr sra = m68k_areg(regs, 7); if ((sra & 1) != 0) { last_fault_for_exception_3 = sra; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2951; } {{ uae_s16 sr = get_word(sra); m68k_areg(regs, 7) += 2; { uaecptr pca = m68k_areg(regs, 7); if ((pca & 1) != 0) { last_fault_for_exception_3 = pca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2951; } {{ uae_s32 pc = get_long(pca); m68k_areg(regs, 7) += 4; regs.sr &= 0xFF00; sr &= 0xFF; regs.sr |= sr; m68k_setpc(pc); fill_prefetch_0 (); MakeFromSR(); }}}}}}}endlabel2951: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_4e90_5)(uae_u32 opcode) /* JSR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_do_jsr(m68k_getpc() + 2, srca); fill_prefetch_0 (); }}return 16; } unsigned long REGPARAM2 CPUFUNC(op_4ea8_5)(uae_u32 opcode) /* JSR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); m68k_do_jsr(m68k_getpc() + 4, srca); fill_prefetch_0 (); }}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4eb0_5)(uae_u32 opcode) /* JSR */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); m68k_do_jsr(m68k_getpc() + 4, srca); fill_prefetch_0 (); }}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4eb8_5)(uae_u32 opcode) /* JSR */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); m68k_do_jsr(m68k_getpc() + 4, srca); fill_prefetch_0 (); }}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4eb9_5)(uae_u32 opcode) /* JSR */ { {{ uaecptr srca = get_ilong_prefetch(2); m68k_do_jsr(m68k_getpc() + 6, srca); fill_prefetch_0 (); }}return 20; } unsigned long REGPARAM2 CPUFUNC(op_4eba_5)(uae_u32 opcode) /* JSR */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); m68k_do_jsr(m68k_getpc() + 4, srca); fill_prefetch_0 (); }}return 18; } unsigned long REGPARAM2 CPUFUNC(op_4ebb_5)(uae_u32 opcode) /* JSR */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); m68k_do_jsr(m68k_getpc() + 4, srca); fill_prefetch_0 (); }}return 22; } unsigned long REGPARAM2 CPUFUNC(op_4ed0_5)(uae_u32 opcode) /* JMP */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_setpc(srca); fill_prefetch_0 (); }}return 8; } unsigned long REGPARAM2 CPUFUNC(op_4ee8_5)(uae_u32 opcode) /* JMP */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); m68k_setpc(srca); fill_prefetch_0 (); }}return 10; } unsigned long REGPARAM2 CPUFUNC(op_4ef0_5)(uae_u32 opcode) /* JMP */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); m68k_setpc(srca); fill_prefetch_0 (); }}return 14; } unsigned long REGPARAM2 CPUFUNC(op_4ef8_5)(uae_u32 opcode) /* JMP */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); m68k_setpc(srca); fill_prefetch_0 (); }}return 10; } unsigned long REGPARAM2 CPUFUNC(op_4ef9_5)(uae_u32 opcode) /* JMP */ { {{ uaecptr srca = get_ilong_prefetch(2); m68k_setpc(srca); fill_prefetch_0 (); }}return 12; } unsigned long REGPARAM2 CPUFUNC(op_4efa_5)(uae_u32 opcode) /* JMP */ { {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); m68k_setpc(srca); fill_prefetch_0 (); }}return 10; } unsigned long REGPARAM2 CPUFUNC(op_4efb_5)(uae_u32 opcode) /* JMP */ { {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); m68k_setpc(srca); fill_prefetch_0 (); }}return 14; } unsigned long REGPARAM2 CPUFUNC(op_5000_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5010_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5018_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5020_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; {{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_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_5028_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5030_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5038_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } #endif #ifdef PART_5 unsigned long REGPARAM2 CPUFUNC(op_5039_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_5040_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5048_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5050_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2976; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel2976: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5058_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2977; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel2977: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5060_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2978; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel2978: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_5068_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2979; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2979: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_5070_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2980; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2980: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_5078_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2981; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2981: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_5079_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2982; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel2982: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_5080_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5088_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5090_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2985; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel2985: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_5098_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2986; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel2986: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_50a0_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel2987; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel2987: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_50a8_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2988; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2988: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_50b0_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2989; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2989: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_50b8_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel2990; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2990: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_50b9_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel2991; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel2991: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_50c0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(0) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_50c8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(0)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel2993; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel2993: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_50d0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(0) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_50d8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(0) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_50e0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(0) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_50e8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(0) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_50f0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(0) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_50f8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(0) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_50f9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(0) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_5100_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5110_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5118_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5120_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; {{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_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_5128_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5130_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5138_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5139_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_5140_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5148_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5150_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3011; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel3011: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5158_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3012; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel3012: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5160_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3013; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel3013: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_5168_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3014; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3014: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_5170_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3015; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3015: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_5178_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3016; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3016: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_5179_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3017; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3017: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_5180_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5188_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_5190_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3020; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel3020: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_5198_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3021; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel3021: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_51a0_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3022; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel3022: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_51a8_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3023; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3023: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_51b0_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; {{ uae_u32 src = srcreg; { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3024; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3024: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_51b8_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3025; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3025: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_51b9_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; {{ uae_u32 src = srcreg; { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3026; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3026: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_51c0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(1) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_51c8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(1)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3028; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3028: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_51d0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(1) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_51d8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(1) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_51e0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(1) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_51e8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(1) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_51f0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(1) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_51f8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(1) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_51f9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(1) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_52c0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(2) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_52c8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(2)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3037; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3037: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_52d0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(2) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_52d8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(2) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_52e0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(2) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_52e8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(2) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_52f0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(2) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_52f8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(2) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_52f9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(2) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_53c0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(3) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_53c8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(3)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3046; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3046: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_53d0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(3) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_53d8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(3) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_53e0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(3) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_53e8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(3) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_53f0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(3) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_53f8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(3) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_53f9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(3) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_54c0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(4) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_54c8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(4)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3055; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3055: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_54d0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(4) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_54d8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(4) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_54e0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(4) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_54e8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(4) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_54f0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(4) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_54f8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(4) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_54f9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(4) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_55c0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(5) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_55c8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(5)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3064; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3064: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_55d0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(5) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_55d8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(5) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_55e0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(5) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_55e8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(5) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_55f0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(5) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_55f8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(5) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_55f9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(5) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_56c0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(6) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_56c8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(6)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3073; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3073: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_56d0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(6) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_56d8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(6) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_56e0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(6) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_56e8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(6) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_56f0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(6) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_56f8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(6) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_56f9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(6) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_57c0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(7) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_57c8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(7)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3082; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3082: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_57d0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(7) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_57d8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(7) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_57e0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(7) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_57e8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(7) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_57f0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(7) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_57f8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(7) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_57f9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(7) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_58c0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(8) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_58c8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(8)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3091; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3091: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_58d0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(8) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_58d8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(8) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_58e0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(8) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_58e8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(8) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_58f0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(8) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_58f8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(8) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_58f9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(8) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_59c0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(9) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_59c8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(9)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3100; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3100: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_59d0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(9) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_59d8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(9) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_59e0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(9) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_59e8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(9) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_59f0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(9) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_59f8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(9) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_59f9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(9) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_5ac0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(10) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5ac8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(10)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3109; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3109: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ad0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(10) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ad8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(10) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ae0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(10) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_5ae8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(10) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5af0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(10) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5af8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(10) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5af9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(10) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_5bc0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(11) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5bc8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(11)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3118; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3118: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5bd0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(11) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5bd8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(11) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5be0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(11) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_5be8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(11) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5bf0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(11) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5bf8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(11) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5bf9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(11) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_5cc0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(12) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5cc8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(12)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3127; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3127: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5cd0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(12) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5cd8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(12) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ce0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(12) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_5ce8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(12) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5cf0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(12) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5cf8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(12) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5cf9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(12) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_5dc0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(13) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5dc8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(13)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3136; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3136: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5dd0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(13) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5dd8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(13) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5de0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(13) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_5de8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(13) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5df0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(13) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5df8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(13) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5df9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(13) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_5ec0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(14) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5ec8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(14)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3145; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3145: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ed0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(14) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ed8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(14) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5ee0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(14) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_5ee8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(14) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5ef0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(14) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5ef8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(14) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5ef9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(14) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_5fc0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{{ int val = cctrue(15) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_5fc8_5)(uae_u32 opcode) /* DBcc */ { uae_u32 srcreg = (opcode & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 offs = get_iword_prefetch(2); if (!cctrue(15)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { if (offs & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3154; } m68k_incpc((uae_s32)offs + 2); fill_prefetch_0 (); return 10; } else { m68k_incpc(4); fill_prefetch_0 (); return 14; } } }}}m68k_incpc(4); fill_prefetch_0 (); endlabel3154: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_5fd0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); { int val = cctrue(15) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5fd8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { int val = cctrue(15) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_5fe0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca; { int val = cctrue(15) ? 0xff : 0; m68k_incpc(2); fill_prefetch_2 (); put_byte(srca,val); }}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_5fe8_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(15) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_5ff0_5)(uae_u32 opcode) /* Scc */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); { int val = cctrue(15) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_5ff8_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); { int val = cctrue(15) ? 0xff : 0; m68k_incpc(4); fill_prefetch_0 (); put_byte(srca,val); }}}return 16; } #endif #ifdef PART_6 unsigned long REGPARAM2 CPUFUNC(op_5ff9_5)(uae_u32 opcode) /* Scc */ { {{ uaecptr srca = get_ilong_prefetch(2); { int val = cctrue(15) ? 0xff : 0; m68k_incpc(6); fill_prefetch_0 (); put_byte(srca,val); }}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_6000_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(0)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3162; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3162: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6001_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(0)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3163; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3163: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_60ff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(0)) goto endlabel3164; 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 endlabel3164; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(0)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3164; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3164: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6100_5)(uae_u32 opcode) /* BSR */ { {{ uae_s16 src = get_iword_prefetch(2); uae_s32 s = (uae_s32)src + 2; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + s; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3165; } m68k_do_bsr(m68k_getpc() + 4, s); fill_prefetch_0 (); }}endlabel3165: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_6101_5)(uae_u32 opcode) /* BSR */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; uae_s32 s = (uae_s32)src + 2; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + s; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3166; } m68k_do_bsr(m68k_getpc() + 2, s); fill_prefetch_0 (); }}endlabel3166: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_61ff_5)(uae_u32 opcode) /* BSR */ { {{ uae_s32 src = get_ilong_prefetch(2); uae_s32 s = (uae_s32)src + 2; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + s; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3167; } m68k_do_bsr(m68k_getpc() + 6, s); fill_prefetch_0 (); }}endlabel3167: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_6200_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(2)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3168; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3168: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6201_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(2)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3169; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3169: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_62ff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(2)) goto endlabel3170; 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 endlabel3170; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(2)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3170; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3170: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6300_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(3)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3171; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3171: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6301_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(3)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3172; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3172: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_63ff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(3)) goto endlabel3173; 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 endlabel3173; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(3)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3173; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3173: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6400_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(4)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3174; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3174: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6401_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(4)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3175; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3175: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_64ff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(4)) goto endlabel3176; 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 endlabel3176; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(4)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3176; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3176: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6500_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(5)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3177; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3177: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6501_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(5)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3178; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3178: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_65ff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(5)) goto endlabel3179; 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 endlabel3179; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(5)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3179; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3179: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6600_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(6)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3180; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3180: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6601_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(6)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3181; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3181: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_66ff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(6)) goto endlabel3182; 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 endlabel3182; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(6)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3182; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3182: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6700_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(7)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3183; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3183: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6701_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(7)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3184; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3184: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_67ff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(7)) goto endlabel3185; 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 endlabel3185; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(7)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3185; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3185: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6800_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(8)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3186; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3186: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6801_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(8)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3187; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3187: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_68ff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(8)) goto endlabel3188; 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 endlabel3188; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(8)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3188; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3188: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6900_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(9)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3189; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3189: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6901_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(9)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3190; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3190: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_69ff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(9)) goto endlabel3191; 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 endlabel3191; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(9)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3191; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3191: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6a00_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(10)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3192; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3192: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6a01_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(10)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3193; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3193: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6aff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(10)) goto endlabel3194; 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 endlabel3194; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(10)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3194; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3194: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6b00_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(11)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3195; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3195: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6b01_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(11)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3196; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3196: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6bff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(11)) goto endlabel3197; 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 endlabel3197; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(11)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3197; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3197: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6c00_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(12)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3198; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3198: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6c01_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(12)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3199; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3199: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6cff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(12)) goto endlabel3200; 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 endlabel3200; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(12)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3200; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3200: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6d00_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(13)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3201; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3201: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6d01_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(13)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3202; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3202: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6dff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(13)) goto endlabel3203; 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 endlabel3203; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(13)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3203; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3203: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6e00_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(14)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3204; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3204: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6e01_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(14)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3205; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3205: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6eff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(14)) goto endlabel3206; 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 endlabel3206; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(14)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3206; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3206: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6f00_5)(uae_u32 opcode) /* Bcc */ { {{ uae_s16 src = get_iword_prefetch(2); if (!cctrue(15)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3207; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(4); fill_prefetch_0 (); endlabel3207: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_6f01_5)(uae_u32 opcode) /* Bcc */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); {{ uae_u32 src = srcreg; if (!cctrue(15)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3208; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(2); fill_prefetch_2 (); endlabel3208: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_6fff_5)(uae_u32 opcode) /* Bcc */ { { m68k_incpc(2); if (!cctrue(15)) goto endlabel3209; 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 endlabel3209; { uae_s32 src = get_ilong_prefetch(2); if (!cctrue(15)) goto didnt_jump; if (src & 1) { last_addr_for_exception_3 = m68k_getpc() + 2; last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src; last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel3209; } m68k_incpc ((uae_s32)src + 2); fill_prefetch_0 (); return 10; didnt_jump:; }}m68k_incpc(6); fill_prefetch_0 (); endlabel3209: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_7000_5)(uae_u32 opcode) /* MOVE */ { uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_u32 src = srcreg; { CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_8000_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_8010_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8018_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_s8 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8020_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); fill_prefetch_2 (); return 10; } unsigned long REGPARAM2 CPUFUNC(op_8028_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8030_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_8038_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_8039_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_803a_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_803b_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_803c_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8040_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_8050_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3223; } {{ 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); fill_prefetch_2 (); endlabel3223: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_8058_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3224; } {{ 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); fill_prefetch_2 (); endlabel3224: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_8060_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3225; } {{ 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); fill_prefetch_2 (); endlabel3225: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_8068_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3226; } {{ 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); fill_prefetch_0 (); endlabel3226: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_8070_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3227; } {{ 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); fill_prefetch_0 (); endlabel3227: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_8078_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3228; } {{ 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); fill_prefetch_0 (); endlabel3228: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_8079_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3229; } {{ 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); fill_prefetch_0 (); endlabel3229: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_807a_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3230; } {{ 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); fill_prefetch_0 (); endlabel3230: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_807b_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3231; } {{ 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); fill_prefetch_0 (); endlabel3231: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_807c_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8080_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_8090_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3234; } {{ 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); fill_prefetch_2 (); endlabel3234: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_8098_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3235; } {{ 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); fill_prefetch_2 (); endlabel3235: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_80a0_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3236; } {{ 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); fill_prefetch_2 (); endlabel3236: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_80a8_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3237; } {{ 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); fill_prefetch_0 (); endlabel3237: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_80b0_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3238; } {{ 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); fill_prefetch_0 (); endlabel3238: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_80b8_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3239; } {{ 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); fill_prefetch_0 (); endlabel3239: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_80b9_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3240; } {{ 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); fill_prefetch_0 (); endlabel3240: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_80ba_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3241; } {{ 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); fill_prefetch_0 (); endlabel3241: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_80bb_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3242; } {{ 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); fill_prefetch_0 (); endlabel3242: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_80bc_5)(uae_u32 opcode) /* OR */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_80c0_5)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); fill_prefetch_2 (); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel3244; } 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); } } }}}endlabel3244: ; return 140; } unsigned long REGPARAM2 CPUFUNC(op_80d0_5)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3245; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); fill_prefetch_2 (); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel3245; } 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); } } }}}}}endlabel3245: ; return 144; } unsigned long REGPARAM2 CPUFUNC(op_80d8_5)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3246; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); fill_prefetch_2 (); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel3246; } 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); } } }}}}}endlabel3246: ; return 144; } unsigned long REGPARAM2 CPUFUNC(op_80e0_5)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3247; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); fill_prefetch_2 (); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel3247; } 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); } } }}}}}endlabel3247: ; return 146; } unsigned long REGPARAM2 CPUFUNC(op_80e8_5)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3248; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel3248; } 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); } } }}}}}endlabel3248: ; return 148; } unsigned long REGPARAM2 CPUFUNC(op_80f0_5)(uae_u32 opcode) /* DIVU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3249; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel3249; } 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); } } }}}}}endlabel3249: ; return 150; } unsigned long REGPARAM2 CPUFUNC(op_80f8_5)(uae_u32 opcode) /* DIVU */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3250; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel3250; } 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); } } }}}}}endlabel3250: ; return 148; } unsigned long REGPARAM2 CPUFUNC(op_80f9_5)(uae_u32 opcode) /* DIVU */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3251; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(6); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel3251; } 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); } } }}}}}endlabel3251: ; return 152; } unsigned long REGPARAM2 CPUFUNC(op_80fa_5)(uae_u32 opcode) /* DIVU */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3252; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel3252; } 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); } } }}}}}endlabel3252: ; return 148; } unsigned long REGPARAM2 CPUFUNC(op_80fb_5)(uae_u32 opcode) /* DIVU */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3253; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel3253; } 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); } } }}}}}endlabel3253: ; return 150; } unsigned long REGPARAM2 CPUFUNC(op_80fc_5)(uae_u32 opcode) /* DIVU */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = get_iword_prefetch(2); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception (5, oldpc); goto endlabel3254; } 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); } } }}}endlabel3254: ; return 144; } unsigned long REGPARAM2 CPUFUNC(op_8100_5)(uae_u32 opcode) /* SBCD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); { uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0); uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); uae_u16 newv, 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); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_8108_5)(uae_u32 opcode) /* SBCD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_8110_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_8118_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_8120_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_8128_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_8130_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_8138_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_8139_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); { uae_s8 dst = get_byte(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_8150_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3264; } {{ uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}endlabel3264: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_8158_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3265; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}endlabel3265: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_8160_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3266; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}endlabel3266: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_8168_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3267; } {{ uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3267: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_8170_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3268; } {{ uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3268: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_8178_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3269; } {{ uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3269: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_8179_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3270; } {{ uae_s16 dst = get_word(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3270: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_8190_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3271; } {{ uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}endlabel3271: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_8198_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3272; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}endlabel3272: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_81a0_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3273; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}endlabel3273: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_81a8_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3274; } {{ uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3274: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_81b0_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3275; } {{ uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3275: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_81b8_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3276; } {{ uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3276: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_81b9_5)(uae_u32 opcode) /* OR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3277; } {{ uae_s32 dst = get_long(dsta); src |= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3277: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_81c0_5)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); fill_prefetch_2 (); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel3278; } 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); } } }}}endlabel3278: ; return 158; } unsigned long REGPARAM2 CPUFUNC(op_81d0_5)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3279; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); fill_prefetch_2 (); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel3279; } 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); } } }}}}}endlabel3279: ; return 162; } unsigned long REGPARAM2 CPUFUNC(op_81d8_5)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3280; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); fill_prefetch_2 (); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel3280; } 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); } } }}}}}endlabel3280: ; return 162; } unsigned long REGPARAM2 CPUFUNC(op_81e0_5)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3281; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(2); fill_prefetch_2 (); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel3281; } 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); } } }}}}}endlabel3281: ; return 164; } unsigned long REGPARAM2 CPUFUNC(op_81e8_5)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3282; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel3282; } 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); } } }}}}}endlabel3282: ; return 166; } unsigned long REGPARAM2 CPUFUNC(op_81f0_5)(uae_u32 opcode) /* DIVS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3283; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel3283; } 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); } } }}}}}endlabel3283: ; return 168; } unsigned long REGPARAM2 CPUFUNC(op_81f8_5)(uae_u32 opcode) /* DIVS */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3284; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel3284; } 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); } } }}}}}endlabel3284: ; return 166; } unsigned long REGPARAM2 CPUFUNC(op_81f9_5)(uae_u32 opcode) /* DIVS */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3285; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(6); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel3285; } 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); } } }}}}}endlabel3285: ; return 170; } unsigned long REGPARAM2 CPUFUNC(op_81fa_5)(uae_u32 opcode) /* DIVS */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3286; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel3286; } 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); } } }}}}}endlabel3286: ; return 166; } unsigned long REGPARAM2 CPUFUNC(op_81fb_5)(uae_u32 opcode) /* DIVS */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3287; } {{ uae_s16 src = get_word(srca); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel3287; } 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); } } }}}}}endlabel3287: ; return 168; } unsigned long REGPARAM2 CPUFUNC(op_81fc_5)(uae_u32 opcode) /* DIVS */ { uae_u32 dstreg = (opcode >> 9) & 7; { uaecptr oldpc = m68k_getpc(); { uae_s16 src = get_iword_prefetch(2); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_incpc(4); fill_prefetch_0 (); if (src == 0) { SET_VFLG (0); Exception(5,oldpc); goto endlabel3288; } 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); } } }}}endlabel3288: ; return 162; } unsigned long REGPARAM2 CPUFUNC(op_9000_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_9010_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9018_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9020_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); fill_prefetch_2 (); return 10; } unsigned long REGPARAM2 CPUFUNC(op_9028_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9030_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_9038_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9039_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_903a_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_903b_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_903c_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9040_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_9048_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_9050_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3302; } {{ 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); fill_prefetch_2 (); endlabel3302: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_9058_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3303; } {{ 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); fill_prefetch_2 (); endlabel3303: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_9060_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3304; } {{ 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); fill_prefetch_2 (); endlabel3304: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_9068_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3305; } {{ 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); fill_prefetch_0 (); endlabel3305: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_9070_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3306; } {{ 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); fill_prefetch_0 (); endlabel3306: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_9078_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3307; } {{ 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); fill_prefetch_0 (); endlabel3307: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_9079_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3308; } {{ 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); fill_prefetch_0 (); endlabel3308: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_907a_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3309; } {{ 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); fill_prefetch_0 (); endlabel3309: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_907b_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3310; } {{ 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); fill_prefetch_0 (); endlabel3310: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_907c_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9080_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9088_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9090_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3314; } {{ 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); fill_prefetch_2 (); endlabel3314: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_9098_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3315; } {{ 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); fill_prefetch_2 (); endlabel3315: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_90a0_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3316; } {{ 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); fill_prefetch_2 (); endlabel3316: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_90a8_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3317; } {{ 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); fill_prefetch_0 (); endlabel3317: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_90b0_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3318; } {{ 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); fill_prefetch_0 (); endlabel3318: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_90b8_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3319; } {{ 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); fill_prefetch_0 (); endlabel3319: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_90b9_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3320; } {{ 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); fill_prefetch_0 (); endlabel3320: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_90ba_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3321; } {{ 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); fill_prefetch_0 (); endlabel3321: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_90bb_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3322; } {{ 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); fill_prefetch_0 (); endlabel3322: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_90bc_5)(uae_u32 opcode) /* SUB */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_90c0_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_90c8_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_90d0_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3326; } {{ 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); fill_prefetch_2 (); endlabel3326: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_90d8_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3327; } {{ 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); fill_prefetch_2 (); endlabel3327: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_90e0_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3328; } {{ 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); fill_prefetch_2 (); endlabel3328: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_90e8_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3329; } {{ 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); fill_prefetch_0 (); endlabel3329: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_90f0_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3330; } {{ 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); fill_prefetch_0 (); endlabel3330: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_90f8_5)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3331; } {{ 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); fill_prefetch_0 (); endlabel3331: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_90f9_5)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3332; } {{ 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); fill_prefetch_0 (); endlabel3332: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_90fa_5)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3333; } {{ 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); fill_prefetch_0 (); endlabel3333: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_90fb_5)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3334; } {{ 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); fill_prefetch_0 (); endlabel3334: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_90fc_5)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(2); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(4); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_9100_5)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_9108_5)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_9110_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_9118_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_9120_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; {{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_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_9128_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_9130_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_9138_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_9139_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_9140_5)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_9148_5)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3346; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3346; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}}endlabel3346: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_9150_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3347; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel3347: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_9158_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3348; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel3348: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_9160_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3349; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel3349: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_9168_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3350; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3350: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_9170_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3351; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3351: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_9178_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3352; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3352: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_9179_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3353; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3353: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_9180_5)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_9188_5)(uae_u32 opcode) /* SUBX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3355; } {{ uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3355; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}}endlabel3355: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_9190_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3356; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel3356: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_9198_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3357; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel3357: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_91a0_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3358; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel3358: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_91a8_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3359; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3359: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_91b0_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3360; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3360: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_91b8_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3361; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3361: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_91b9_5)(uae_u32 opcode) /* SUB */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3362; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3362: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_91c0_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_91c8_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_91d0_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3365; } {{ 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); fill_prefetch_2 (); endlabel3365: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_91d8_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3366; } {{ 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); fill_prefetch_2 (); endlabel3366: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_91e0_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3367; } {{ 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); fill_prefetch_2 (); endlabel3367: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_91e8_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3368; } {{ 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); fill_prefetch_0 (); endlabel3368: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_91f0_5)(uae_u32 opcode) /* SUBA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3369; } {{ 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); fill_prefetch_0 (); endlabel3369: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_91f8_5)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3370; } {{ 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); fill_prefetch_0 (); endlabel3370: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_91f9_5)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3371; } {{ 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); fill_prefetch_0 (); endlabel3371: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_91fa_5)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3372; } {{ 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); fill_prefetch_0 (); endlabel3372: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_91fb_5)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3373; } {{ 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); fill_prefetch_0 (); endlabel3373: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_91fc_5)(uae_u32 opcode) /* SUBA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst - src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(6); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b000_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_b010_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b018_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b020_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); fill_prefetch_2 (); return 10; } unsigned long REGPARAM2 CPUFUNC(op_b028_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b030_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b038_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b039_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_b03a_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b03b_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b03c_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b040_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } #endif #ifdef PART_7 unsigned long REGPARAM2 CPUFUNC(op_b048_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_b050_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3388; } {{ 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); fill_prefetch_2 (); endlabel3388: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_b058_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3389; } {{ 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); fill_prefetch_2 (); endlabel3389: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_b060_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3390; } {{ 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); fill_prefetch_2 (); endlabel3390: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_b068_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3391; } {{ 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); fill_prefetch_0 (); endlabel3391: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_b070_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3392; } {{ 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); fill_prefetch_0 (); endlabel3392: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_b078_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3393; } {{ 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); fill_prefetch_0 (); endlabel3393: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_b079_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3394; } {{ 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); fill_prefetch_0 (); endlabel3394: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_b07a_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3395; } {{ 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); fill_prefetch_0 (); endlabel3395: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_b07b_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3396; } {{ 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); fill_prefetch_0 (); endlabel3396: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_b07c_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b080_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b088_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b090_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3400; } {{ 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); fill_prefetch_2 (); endlabel3400: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_b098_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3401; } {{ 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); fill_prefetch_2 (); endlabel3401: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_b0a0_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3402; } {{ 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); fill_prefetch_2 (); endlabel3402: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_b0a8_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3403; } {{ 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); fill_prefetch_0 (); endlabel3403: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_b0b0_5)(uae_u32 opcode) /* CMP */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3404; } {{ 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); fill_prefetch_0 (); endlabel3404: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_b0b8_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3405; } {{ 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); fill_prefetch_0 (); endlabel3405: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_b0b9_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3406; } {{ 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); fill_prefetch_0 (); endlabel3406: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_b0ba_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3407; } {{ 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); fill_prefetch_0 (); endlabel3407: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_b0bb_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3408; } {{ 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); fill_prefetch_0 (); endlabel3408: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_b0bc_5)(uae_u32 opcode) /* CMP */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_b0c0_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b0c8_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b0d0_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3412; } {{ 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); fill_prefetch_2 (); endlabel3412: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_b0d8_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3413; } {{ 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); fill_prefetch_2 (); endlabel3413: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_b0e0_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3414; } {{ 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); fill_prefetch_2 (); endlabel3414: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_b0e8_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3415; } {{ 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); fill_prefetch_0 (); endlabel3415: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_b0f0_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3416; } {{ 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); fill_prefetch_0 (); endlabel3416: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_b0f8_5)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3417; } {{ 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); fill_prefetch_0 (); endlabel3417: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_b0f9_5)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3418; } {{ 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); fill_prefetch_0 (); endlabel3418: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_b0fa_5)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3419; } {{ 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); fill_prefetch_0 (); endlabel3419: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_b0fb_5)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3420; } {{ 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); fill_prefetch_0 (); endlabel3420: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_b0fc_5)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 10; } unsigned long REGPARAM2 CPUFUNC(op_b100_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_b108_5)(uae_u32 opcode) /* CMPM */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); SET_NFLG (flgn != 0); }}}}}}}}m68k_incpc(2); fill_prefetch_2 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_b110_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_b118_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_b120_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_b128_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_b130_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_b138_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_b139_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); { uae_s8 dst = get_byte(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_b140_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_b148_5)(uae_u32 opcode) /* CMPM */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3432; } {{ uae_s16 src = get_word(srca); m68k_areg(regs, srcreg) += 2; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3432; } {{ 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); fill_prefetch_2 (); endlabel3432: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_b150_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3433; } {{ uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}endlabel3433: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_b158_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3434; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}endlabel3434: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_b160_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3435; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}endlabel3435: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_b168_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3436; } {{ uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3436: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_b170_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3437; } {{ uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3437: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_b178_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3438; } {{ uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3438: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_b179_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3439; } {{ uae_s16 dst = get_word(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3439: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_b180_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_b188_5)(uae_u32 opcode) /* CMPM */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3441; } {{ uae_s32 src = get_long(srca); m68k_areg(regs, srcreg) += 4; { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3441; } {{ 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); fill_prefetch_2 (); endlabel3441: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_b190_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3442; } {{ uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}endlabel3442: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_b198_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3443; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}endlabel3443: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_b1a0_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3444; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}endlabel3444: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_b1a8_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3445; } {{ uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3445: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_b1b0_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3446; } {{ uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3446: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_b1b8_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3447; } {{ uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3447: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_b1b9_5)(uae_u32 opcode) /* EOR */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3448; } {{ uae_s32 dst = get_long(dsta); src ^= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3448: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_b1c0_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b1c8_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs != flgo) && (flgn != flgo)); SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); SET_NFLG (flgn != 0); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_b1d0_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3451; } {{ 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); fill_prefetch_2 (); endlabel3451: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_b1d8_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3452; } {{ 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); fill_prefetch_2 (); endlabel3452: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_b1e0_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3453; } {{ 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); fill_prefetch_2 (); endlabel3453: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_b1e8_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3454; } {{ 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); fill_prefetch_0 (); endlabel3454: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_b1f0_5)(uae_u32 opcode) /* CMPA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3455; } {{ 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); fill_prefetch_0 (); endlabel3455: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_b1f8_5)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3456; } {{ 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); fill_prefetch_0 (); endlabel3456: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_b1f9_5)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3457; } {{ 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); fill_prefetch_0 (); endlabel3457: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_b1fa_5)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3458; } {{ 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); fill_prefetch_0 (); endlabel3458: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_b1fb_5)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3459; } {{ 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); fill_prefetch_0 (); endlabel3459: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_b1fc_5)(uae_u32 opcode) /* CMPA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c000_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_c010_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c018_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_s8 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c020_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); fill_prefetch_2 (); return 10; } unsigned long REGPARAM2 CPUFUNC(op_c028_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c030_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c038_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c039_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c03a_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_c03b_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_c03c_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c040_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); }}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_c050_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3473; } {{ 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); fill_prefetch_2 (); endlabel3473: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_c058_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3474; } {{ 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); fill_prefetch_2 (); endlabel3474: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_c060_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3475; } {{ 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); fill_prefetch_2 (); endlabel3475: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_c068_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3476; } {{ 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); fill_prefetch_0 (); endlabel3476: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_c070_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3477; } {{ 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); fill_prefetch_0 (); endlabel3477: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_c078_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3478; } {{ 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); fill_prefetch_0 (); endlabel3478: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_c079_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3479; } {{ 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); fill_prefetch_0 (); endlabel3479: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_c07a_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3480; } {{ 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); fill_prefetch_0 (); endlabel3480: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_c07b_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3481; } {{ 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); fill_prefetch_0 (); endlabel3481: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_c07c_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c080_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_c090_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3484; } {{ 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); fill_prefetch_2 (); endlabel3484: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_c098_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3485; } {{ 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); fill_prefetch_2 (); endlabel3485: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_c0a0_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3486; } {{ 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); fill_prefetch_2 (); endlabel3486: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_c0a8_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3487; } {{ 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); fill_prefetch_0 (); endlabel3487: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_c0b0_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3488; } {{ 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); fill_prefetch_0 (); endlabel3488: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_c0b8_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3489; } {{ 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); fill_prefetch_0 (); endlabel3489: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_c0b9_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3490; } {{ 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); fill_prefetch_0 (); endlabel3490: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_c0ba_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3491; } {{ 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); fill_prefetch_0 (); endlabel3491: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_c0bb_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3492; } {{ 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); fill_prefetch_0 (); endlabel3492: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_c0bc_5)(uae_u32 opcode) /* AND */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_c0c0_5)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 70; } unsigned long REGPARAM2 CPUFUNC(op_c0d0_5)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3495; } {{ 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); fill_prefetch_2 (); endlabel3495: ; return 74; } unsigned long REGPARAM2 CPUFUNC(op_c0d8_5)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3496; } {{ 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); fill_prefetch_2 (); endlabel3496: ; return 74; } unsigned long REGPARAM2 CPUFUNC(op_c0e0_5)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3497; } {{ 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); fill_prefetch_2 (); endlabel3497: ; return 76; } unsigned long REGPARAM2 CPUFUNC(op_c0e8_5)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3498; } {{ 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); fill_prefetch_0 (); endlabel3498: ; return 78; } unsigned long REGPARAM2 CPUFUNC(op_c0f0_5)(uae_u32 opcode) /* MULU */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3499; } {{ 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); fill_prefetch_0 (); endlabel3499: ; return 80; } unsigned long REGPARAM2 CPUFUNC(op_c0f8_5)(uae_u32 opcode) /* MULU */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3500; } {{ 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); fill_prefetch_0 (); endlabel3500: ; return 78; } unsigned long REGPARAM2 CPUFUNC(op_c0f9_5)(uae_u32 opcode) /* MULU */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3501; } {{ 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); fill_prefetch_0 (); endlabel3501: ; return 82; } unsigned long REGPARAM2 CPUFUNC(op_c0fa_5)(uae_u32 opcode) /* MULU */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3502; } {{ 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); fill_prefetch_0 (); endlabel3502: ; return 78; } unsigned long REGPARAM2 CPUFUNC(op_c0fb_5)(uae_u32 opcode) /* MULU */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3503; } {{ 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); fill_prefetch_0 (); endlabel3503: ; return 80; } unsigned long REGPARAM2 CPUFUNC(op_c0fc_5)(uae_u32 opcode) /* MULU */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 74; } unsigned long REGPARAM2 CPUFUNC(op_c100_5)(uae_u32 opcode) /* ABCD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); { uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0); uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); uae_u16 newv, 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); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_c108_5)(uae_u32 opcode) /* ABCD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_c110_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_c118_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_c120_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,src); }}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_c128_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_c130_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_c138_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_c139_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); { uae_s8 dst = get_byte(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s8)(src)) == 0); SET_NFLG (((uae_s8)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,src); }}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_c140_5)(uae_u32 opcode) /* EXG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); m68k_dreg(regs, srcreg) = (dst); m68k_dreg(regs, dstreg) = (src); }}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_c148_5)(uae_u32 opcode) /* EXG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); m68k_areg(regs, srcreg) = (dst); m68k_areg(regs, dstreg) = (src); }}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_c150_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3516; } {{ uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}endlabel3516: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_c158_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3517; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}endlabel3517: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_c160_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3518; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,src); }}}}}endlabel3518: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_c168_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3519; } {{ uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3519: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_c170_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3520; } {{ uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3520: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_c178_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3521; } {{ uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3521: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_c179_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3522; } {{ uae_s16 dst = get_word(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s16)(src)) == 0); SET_NFLG (((uae_s16)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,src); }}}}}endlabel3522: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_c188_5)(uae_u32 opcode) /* EXG */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); m68k_dreg(regs, srcreg) = (dst); m68k_areg(regs, dstreg) = (src); }}}m68k_incpc(2); fill_prefetch_2 (); return 6; } unsigned long REGPARAM2 CPUFUNC(op_c190_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3524; } {{ uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}endlabel3524: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_c198_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3525; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}endlabel3525: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_c1a0_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3526; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,src); }}}}}endlabel3526: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_c1a8_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3527; } {{ uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3527: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_c1b0_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3528; } {{ uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3528: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_c1b8_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3529; } {{ uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3529: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_c1b9_5)(uae_u32 opcode) /* AND */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3530; } {{ uae_s32 dst = get_long(dsta); src &= dst; CLEAR_CZNV; SET_ZFLG (((uae_s32)(src)) == 0); SET_NFLG (((uae_s32)(src)) < 0); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,src); }}}}}endlabel3530: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_c1c0_5)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; CLEAR_CZNV; SET_ZFLG (((uae_s32)(newv)) == 0); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 70; } unsigned long REGPARAM2 CPUFUNC(op_c1d0_5)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3532; } {{ 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); fill_prefetch_2 (); endlabel3532: ; return 74; } unsigned long REGPARAM2 CPUFUNC(op_c1d8_5)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3533; } {{ 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); fill_prefetch_2 (); endlabel3533: ; return 74; } unsigned long REGPARAM2 CPUFUNC(op_c1e0_5)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3534; } {{ 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); fill_prefetch_2 (); endlabel3534: ; return 76; } unsigned long REGPARAM2 CPUFUNC(op_c1e8_5)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3535; } {{ 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); fill_prefetch_0 (); endlabel3535: ; return 78; } unsigned long REGPARAM2 CPUFUNC(op_c1f0_5)(uae_u32 opcode) /* MULS */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3536; } {{ 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); fill_prefetch_0 (); endlabel3536: ; return 80; } unsigned long REGPARAM2 CPUFUNC(op_c1f8_5)(uae_u32 opcode) /* MULS */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3537; } {{ 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); fill_prefetch_0 (); endlabel3537: ; return 78; } unsigned long REGPARAM2 CPUFUNC(op_c1f9_5)(uae_u32 opcode) /* MULS */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3538; } {{ 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); fill_prefetch_0 (); endlabel3538: ; return 82; } unsigned long REGPARAM2 CPUFUNC(op_c1fa_5)(uae_u32 opcode) /* MULS */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3539; } {{ 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); fill_prefetch_0 (); endlabel3539: ; return 78; } unsigned long REGPARAM2 CPUFUNC(op_c1fb_5)(uae_u32 opcode) /* MULS */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3540; } {{ 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); fill_prefetch_0 (); endlabel3540: ; return 80; } unsigned long REGPARAM2 CPUFUNC(op_c1fc_5)(uae_u32 opcode) /* MULS */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 74; } unsigned long REGPARAM2 CPUFUNC(op_d000_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_d010_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d018_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); { uae_s8 src = get_byte(srca); m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; { uae_s8 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d020_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); fill_prefetch_2 (); return 10; } unsigned long REGPARAM2 CPUFUNC(op_d028_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d030_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d038_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d039_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d03a_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(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); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d03b_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(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); fill_prefetch_0 (); return 14; } unsigned long REGPARAM2 CPUFUNC(op_d03c_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = get_ibyte_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d040_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_d048_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_ZFLG (((uae_s16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_d050_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3555; } {{ 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); fill_prefetch_2 (); endlabel3555: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_d058_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3556; } {{ 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); fill_prefetch_2 (); endlabel3556: ; return 8; } unsigned long REGPARAM2 CPUFUNC(op_d060_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3557; } {{ 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); fill_prefetch_2 (); endlabel3557: ; return 10; } unsigned long REGPARAM2 CPUFUNC(op_d068_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3558; } {{ 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); fill_prefetch_0 (); endlabel3558: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_d070_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3559; } {{ 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); fill_prefetch_0 (); endlabel3559: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_d078_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3560; } {{ 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); fill_prefetch_0 (); endlabel3560: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_d079_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3561; } {{ 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); fill_prefetch_0 (); endlabel3561: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_d07a_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3562; } {{ 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); fill_prefetch_0 (); endlabel3562: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_d07b_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3563; } {{ 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); fill_prefetch_0 (); endlabel3563: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_d07c_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(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); fill_prefetch_0 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d080_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d088_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); {{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_ZFLG (((uae_s32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv); }}}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d090_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3567; } {{ 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); fill_prefetch_2 (); endlabel3567: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_d098_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3568; } {{ 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); fill_prefetch_2 (); endlabel3568: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_d0a0_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3569; } {{ 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); fill_prefetch_2 (); endlabel3569: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_d0a8_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3570; } {{ 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); fill_prefetch_0 (); endlabel3570: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_d0b0_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3571; } {{ 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); fill_prefetch_0 (); endlabel3571: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_d0b8_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3572; } {{ 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); fill_prefetch_0 (); endlabel3572: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_d0b9_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3573; } {{ 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); fill_prefetch_0 (); endlabel3573: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_d0ba_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3574; } {{ 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); fill_prefetch_0 (); endlabel3574: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_d0bb_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3575; } {{ 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); fill_prefetch_0 (); endlabel3575: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_d0bc_5)(uae_u32 opcode) /* ADD */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(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); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_d0c0_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d0c8_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d0d0_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3579; } {{ 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); fill_prefetch_2 (); endlabel3579: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_d0d8_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3580; } {{ 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); fill_prefetch_2 (); endlabel3580: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_d0e0_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3581; } {{ 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); fill_prefetch_2 (); endlabel3581: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_d0e8_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3582; } {{ 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); fill_prefetch_0 (); endlabel3582: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_d0f0_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3583; } {{ 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); fill_prefetch_0 (); endlabel3583: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_d0f8_5)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3584; } {{ 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); fill_prefetch_0 (); endlabel3584: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_d0f9_5)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3585; } {{ 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); fill_prefetch_0 (); endlabel3585: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_d0fa_5)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3586; } {{ 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); fill_prefetch_0 (); endlabel3586: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_d0fb_5)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3587; } {{ 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); fill_prefetch_0 (); endlabel3587: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_d0fc_5)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = get_iword_prefetch(2); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(4); fill_prefetch_0 (); return 12; } unsigned long REGPARAM2 CPUFUNC(op_d100_5)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uae_s8 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); SET_NFLG (((uae_s8)(newv)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); }}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_d108_5)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; { uae_s8 src = get_byte(srca); m68k_areg (regs, srcreg) = srca; { 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); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_d110_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_d118_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); { uae_s8 dst = get_byte(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; {{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); { int flgs = ((uae_s8)(src)) < 0; int flgo = ((uae_s8)(dst)) < 0; int flgn = ((uae_s8)(newv)) < 0; SET_ZFLG (((uae_s8)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 12; } unsigned long REGPARAM2 CPUFUNC(op_d120_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; { uae_s8 dst = get_byte(dsta); m68k_areg (regs, dstreg) = dsta; {{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_incpc(2); fill_prefetch_2 (); put_byte(dsta,newv); }}}}}}}return 14; } unsigned long REGPARAM2 CPUFUNC(op_d128_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_d130_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 18; } unsigned long REGPARAM2 CPUFUNC(op_d138_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(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); m68k_incpc(4); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 16; } unsigned long REGPARAM2 CPUFUNC(op_d139_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s8 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(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); m68k_incpc(6); fill_prefetch_0 (); put_byte(dsta,newv); }}}}}}}return 20; } unsigned long REGPARAM2 CPUFUNC(op_d140_5)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uae_s16 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); { int flgs = ((uae_s16)(src)) < 0; int flgo = ((uae_s16)(dst)) < 0; int flgn = ((uae_s16)(newv)) < 0; SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); SET_NFLG (((uae_s16)(newv)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); }}}}}m68k_incpc(2); fill_prefetch_2 (); return 4; } unsigned long REGPARAM2 CPUFUNC(op_d148_5)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 2; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3599; } {{ uae_s16 src = get_word(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3599; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}}endlabel3599: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_d150_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3600; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel3600: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_d158_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3601; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel3601: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_d160_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 2; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3602; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dsta,newv); }}}}}}}}endlabel3602: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_d168_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3603; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3603: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_d170_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3604; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3604: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_d178_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3605; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3605: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_d179_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s16 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3606; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dsta,newv); }}}}}}}}endlabel3606: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_d180_5)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_dreg(regs, dstreg); { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); { int flgs = ((uae_s32)(src)) < 0; int flgo = ((uae_s32)(dst)) < 0; int flgn = ((uae_s32)(newv)) < 0; SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); COPY_CARRY; SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); SET_NFLG (((uae_s32)(newv)) < 0); m68k_dreg(regs, dstreg) = (newv); }}}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d188_5)(uae_u32 opcode) /* ADDX */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3608; } {{ uae_s32 src = get_long(srca); m68k_areg (regs, srcreg) = srca; { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3608; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}}endlabel3608: ; return 30; } unsigned long REGPARAM2 CPUFUNC(op_d190_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3609; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel3609: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_d198_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3610; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel3610: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_d1a0_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) - 4; if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3611; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_long(dsta,newv); }}}}}}}}endlabel3611: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_d1a8_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3612; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3612: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_d1b0_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2)); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3613; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3613: ; return 26; } unsigned long REGPARAM2 CPUFUNC(op_d1b8_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3614; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3614: ; return 24; } unsigned long REGPARAM2 CPUFUNC(op_d1b9_5)(uae_u32 opcode) /* ADD */ { uae_u32 srcreg = ((opcode >> 9) & 7); {{ uae_s32 src = m68k_dreg(regs, srcreg); { uaecptr dsta = get_ilong_prefetch(2); if ((dsta & 1) != 0) { last_fault_for_exception_3 = dsta; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3615; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_long(dsta,newv); }}}}}}}}endlabel3615: ; return 28; } unsigned long REGPARAM2 CPUFUNC(op_d1c0_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_dreg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d1c8_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = m68k_areg(regs, srcreg); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(2); fill_prefetch_2 (); return 8; } unsigned long REGPARAM2 CPUFUNC(op_d1d0_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3618; } {{ 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); fill_prefetch_2 (); endlabel3618: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_d1d8_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3619; } {{ 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); fill_prefetch_2 (); endlabel3619: ; return 14; } #endif #ifdef PART_8 unsigned long REGPARAM2 CPUFUNC(op_d1e0_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) - 4; if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3620; } {{ 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); fill_prefetch_2 (); endlabel3620: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_d1e8_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3621; } {{ 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); fill_prefetch_0 (); endlabel3621: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_d1f0_5)(uae_u32 opcode) /* ADDA */ { uae_u32 srcreg = (opcode & 7); uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3622; } {{ 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); fill_prefetch_0 (); endlabel3622: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_d1f8_5)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3623; } {{ 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); fill_prefetch_0 (); endlabel3623: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_d1f9_5)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = get_ilong_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3624; } {{ 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); fill_prefetch_0 (); endlabel3624: ; return 22; } unsigned long REGPARAM2 CPUFUNC(op_d1fa_5)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr srca = m68k_getpc () + 2; srca += (uae_s32)(uae_s16)get_iword_prefetch(2); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3625; } {{ 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); fill_prefetch_0 (); endlabel3625: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_d1fb_5)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uaecptr tmppc = m68k_getpc() + 2; uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2)); if ((srca & 1) != 0) { last_fault_for_exception_3 = srca; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3626; } {{ 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); fill_prefetch_0 (); endlabel3626: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_d1fc_5)(uae_u32 opcode) /* ADDA */ { uae_u32 dstreg = (opcode >> 9) & 7; {{ uae_s32 src = get_ilong_prefetch(2); { uae_s32 dst = m68k_areg(regs, dstreg); { uae_u32 newv = dst + src; m68k_areg(regs, dstreg) = (newv); }}}}m68k_incpc(6); fill_prefetch_0 (); return 16; } unsigned long REGPARAM2 CPUFUNC(op_e000_5)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ 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; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e008_5)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_CFLG ((cnt == 8) & (val >> 7)); COPY_CARRY; val = 0; } else { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s8)(val)) == 0); SET_NFLG (((uae_s8)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); }}}}m68k_incpc(2); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e010_5)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e018_5)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e020_5)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ 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; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e028_5)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_CFLG ((cnt == 8) & (val >> 7)); COPY_CARRY; val = 0; } else if (cnt > 0) { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s8)(val)) == 0); SET_NFLG (((uae_s8)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); }}}}m68k_incpc(2); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e030_5)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 36) cnt -= 36; if (cnt >= 18) cnt -= 18; if (cnt >= 9) cnt -= 9; if (cnt > 0) { cnt--; { 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e038_5)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e040_5)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ 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; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e048_5)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_CFLG ((cnt == 16) & (val >> 15)); COPY_CARRY; val = 0; } else { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); }}}}m68k_incpc(2); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e050_5)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e058_5)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e060_5)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ 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; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e068_5)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_CFLG ((cnt == 16) & (val >> 15)); COPY_CARRY; val = 0; } else if (cnt > 0) { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); }}}}m68k_incpc(2); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e070_5)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e078_5)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e080_5)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; uae_u32 sign = (0x80000000 & val) >> 31; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e088_5)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_CFLG ((cnt == 32) & (val >> 31)); COPY_CARRY; val = 0; } else { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s32)(val)) == 0); SET_NFLG (((uae_s32)(val)) < 0); m68k_dreg(regs, dstreg) = (val); }}}}m68k_incpc(2); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e090_5)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e098_5)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e0a0_5)(uae_u32 opcode) /* ASR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ 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; retcycles = cnt; 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e0a8_5)(uae_u32 opcode) /* LSR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_CFLG ((cnt == 32) & (val >> 31)); COPY_CARRY; val = 0; } else if (cnt > 0) { val >>= cnt - 1; SET_CFLG (val & 1); COPY_CARRY; val >>= 1; } SET_ZFLG (((uae_s32)(val)) == 0); SET_NFLG (((uae_s32)(val)) < 0); m68k_dreg(regs, dstreg) = (val); }}}}m68k_incpc(2); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e0b0_5)(uae_u32 opcode) /* ROXR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e0b8_5)(uae_u32 opcode) /* ROR */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e0d0_5)(uae_u32 opcode) /* ASRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3652; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3652: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e0d8_5)(uae_u32 opcode) /* ASRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3653; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3653: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e0e0_5)(uae_u32 opcode) /* ASRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3654; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3654: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_e0e8_5)(uae_u32 opcode) /* ASRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3655; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3655: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e0f0_5)(uae_u32 opcode) /* ASRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3656; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3656: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_e0f8_5)(uae_u32 opcode) /* ASRW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3657; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3657: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e0f9_5)(uae_u32 opcode) /* ASRW */ { {{ uaecptr dataa = get_ilong_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3658; } {{ 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; m68k_incpc(6); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3658: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_e100_5)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_VFLG (val != 0); SET_CFLG (cnt == 8 ? val & 1 : 0); COPY_CARRY; val = 0; } else { 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e108_5)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_CFLG (cnt == 8 ? val & 1 : 0); COPY_CARRY; val = 0; } else { val <<= (cnt - 1); SET_CFLG ((val & 0x80) >> 7); COPY_CARRY; val <<= 1; val &= 0xff; } SET_ZFLG (((uae_s8)(val)) == 0); SET_NFLG (((uae_s8)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); }}}}m68k_incpc(2); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e110_5)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e118_5)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e120_5)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_VFLG (val != 0); SET_CFLG (cnt == 8 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e128_5)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 8) { SET_CFLG (cnt == 8 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { val <<= (cnt - 1); SET_CFLG ((val & 0x80) >> 7); COPY_CARRY; val <<= 1; val &= 0xff; } SET_ZFLG (((uae_s8)(val)) == 0); SET_NFLG (((uae_s8)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); }}}}m68k_incpc(2); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e130_5)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 36) cnt -= 36; if (cnt >= 18) cnt -= 18; if (cnt >= 9) cnt -= 9; if (cnt > 0) { cnt--; { 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e138_5)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s8 cnt = m68k_dreg(regs, srcreg); { uae_s8 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u8)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e140_5)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_VFLG (val != 0); SET_CFLG (cnt == 16 ? val & 1 : 0); COPY_CARRY; val = 0; } else { 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e148_5)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_CFLG (cnt == 16 ? val & 1 : 0); COPY_CARRY; val = 0; } else { val <<= (cnt - 1); SET_CFLG ((val & 0x8000) >> 15); COPY_CARRY; val <<= 1; val &= 0xffff; } SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); }}}}m68k_incpc(2); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e150_5)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e158_5)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e160_5)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_VFLG (val != 0); SET_CFLG (cnt == 16 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e168_5)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 16) { SET_CFLG (cnt == 16 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { val <<= (cnt - 1); SET_CFLG ((val & 0x8000) >> 15); COPY_CARRY; val <<= 1; val &= 0xffff; } SET_ZFLG (((uae_s16)(val)) == 0); SET_NFLG (((uae_s16)(val)) < 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); }}}}m68k_incpc(2); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e170_5)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e178_5)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s16 cnt = m68k_dreg(regs, srcreg); { uae_s16 data = m68k_dreg(regs, dstreg); { uae_u32 val = (uae_u16)data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (6+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e180_5)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_VFLG (val != 0); SET_CFLG (cnt == 32 ? val & 1 : 0); COPY_CARRY; val = 0; } else { 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e188_5)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_CFLG (cnt == 32 ? val & 1 : 0); COPY_CARRY; val = 0; } else { val <<= (cnt - 1); SET_CFLG ((val & 0x80000000) >> 31); COPY_CARRY; val <<= 1; val &= 0xffffffff; } SET_ZFLG (((uae_s32)(val)) == 0); SET_NFLG (((uae_s32)(val)) < 0); m68k_dreg(regs, dstreg) = (val); }}}}m68k_incpc(2); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e190_5)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e198_5)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_u32 cnt = srcreg; { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e1a0_5)(uae_u32 opcode) /* ASL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_VFLG (val != 0); SET_CFLG (cnt == 32 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e1a8_5)(uae_u32 opcode) /* LSL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; CLEAR_CZNV; if (cnt >= 32) { SET_CFLG (cnt == 32 ? val & 1 : 0); COPY_CARRY; val = 0; } else if (cnt > 0) { val <<= (cnt - 1); SET_CFLG ((val & 0x80000000) >> 31); COPY_CARRY; val <<= 1; val &= 0xffffffff; } SET_ZFLG (((uae_s32)(val)) == 0); SET_NFLG (((uae_s32)(val)) < 0); m68k_dreg(regs, dstreg) = (val); }}}}m68k_incpc(2); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e1b0_5)(uae_u32 opcode) /* ROXL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e1b8_5)(uae_u32 opcode) /* ROL */ { uae_u32 srcreg = ((opcode >> 9) & 7); uae_u32 dstreg = opcode & 7; unsigned int retcycles; {{ uae_s32 cnt = m68k_dreg(regs, srcreg); { uae_s32 data = m68k_dreg(regs, dstreg); { uae_u32 val = data; cnt &= 63; retcycles = cnt; 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); fill_prefetch_2 (); return (8+retcycles*2); } unsigned long REGPARAM2 CPUFUNC(op_e1d0_5)(uae_u32 opcode) /* ASLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3683; } {{ 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)); m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3683: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e1d8_5)(uae_u32 opcode) /* ASLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3684; } {{ 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)); m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3684: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e1e0_5)(uae_u32 opcode) /* ASLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3685; } {{ 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)); m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3685: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_e1e8_5)(uae_u32 opcode) /* ASLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3686; } {{ 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)); m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3686: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e1f0_5)(uae_u32 opcode) /* ASLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3687; } {{ 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)); m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3687: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_e1f8_5)(uae_u32 opcode) /* ASLW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3688; } {{ 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)); m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3688: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e1f9_5)(uae_u32 opcode) /* ASLW */ { {{ uaecptr dataa = get_ilong_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3689; } {{ 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)); m68k_incpc(6); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3689: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_e2d0_5)(uae_u32 opcode) /* LSRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3690; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3690: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e2d8_5)(uae_u32 opcode) /* LSRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3691; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3691: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e2e0_5)(uae_u32 opcode) /* LSRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3692; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3692: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_e2e8_5)(uae_u32 opcode) /* LSRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3693; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3693: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e2f0_5)(uae_u32 opcode) /* LSRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3694; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3694: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_e2f8_5)(uae_u32 opcode) /* LSRW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3695; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3695: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e2f9_5)(uae_u32 opcode) /* LSRW */ { {{ uaecptr dataa = get_ilong_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3696; } {{ 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; m68k_incpc(6); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3696: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_e3d0_5)(uae_u32 opcode) /* LSLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3697; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3697: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e3d8_5)(uae_u32 opcode) /* LSLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3698; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3698: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e3e0_5)(uae_u32 opcode) /* LSLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3699; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3699: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_e3e8_5)(uae_u32 opcode) /* LSLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3700; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3700: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e3f0_5)(uae_u32 opcode) /* LSLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3701; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3701: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_e3f8_5)(uae_u32 opcode) /* LSLW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3702; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3702: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e3f9_5)(uae_u32 opcode) /* LSLW */ { {{ uaecptr dataa = get_ilong_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3703; } {{ 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; m68k_incpc(6); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3703: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_e4d0_5)(uae_u32 opcode) /* ROXRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3704; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3704: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e4d8_5)(uae_u32 opcode) /* ROXRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3705; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3705: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e4e0_5)(uae_u32 opcode) /* ROXRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3706; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3706: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_e4e8_5)(uae_u32 opcode) /* ROXRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3707; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3707: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e4f0_5)(uae_u32 opcode) /* ROXRW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3708; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3708: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_e4f8_5)(uae_u32 opcode) /* ROXRW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3709; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3709: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e4f9_5)(uae_u32 opcode) /* ROXRW */ { {{ uaecptr dataa = get_ilong_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3710; } {{ 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; m68k_incpc(6); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3710: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_e5d0_5)(uae_u32 opcode) /* ROXLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3711; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3711: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e5d8_5)(uae_u32 opcode) /* ROXLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3712; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3712: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e5e0_5)(uae_u32 opcode) /* ROXLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3713; } {{ 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; m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3713: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_e5e8_5)(uae_u32 opcode) /* ROXLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3714; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3714: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e5f0_5)(uae_u32 opcode) /* ROXLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3715; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3715: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_e5f8_5)(uae_u32 opcode) /* ROXLW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3716; } {{ 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; m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3716: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e5f9_5)(uae_u32 opcode) /* ROXLW */ { {{ uaecptr dataa = get_ilong_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3717; } {{ 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; m68k_incpc(6); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3717: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_e6d0_5)(uae_u32 opcode) /* RORW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3718; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3718: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e6d8_5)(uae_u32 opcode) /* RORW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3719; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3719: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e6e0_5)(uae_u32 opcode) /* RORW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3720; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3720: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_e6e8_5)(uae_u32 opcode) /* RORW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3721; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3721: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e6f0_5)(uae_u32 opcode) /* RORW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3722; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3722: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_e6f8_5)(uae_u32 opcode) /* RORW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3723; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3723: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e6f9_5)(uae_u32 opcode) /* RORW */ { {{ uaecptr dataa = get_ilong_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3724; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3724: ; return 20; } unsigned long REGPARAM2 CPUFUNC(op_e7d0_5)(uae_u32 opcode) /* ROLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3725; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3725: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e7d8_5)(uae_u32 opcode) /* ROLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3726; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3726: ; return 12; } unsigned long REGPARAM2 CPUFUNC(op_e7e0_5)(uae_u32 opcode) /* ROLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 2; Exception(3, 0); goto endlabel3727; } {{ 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); m68k_incpc(2); fill_prefetch_2 (); put_word(dataa,val); }}}}}endlabel3727: ; return 14; } unsigned long REGPARAM2 CPUFUNC(op_e7e8_5)(uae_u32 opcode) /* ROLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3728; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3728: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e7f0_5)(uae_u32 opcode) /* ROLW */ { uae_u32 srcreg = (opcode & 7); {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2)); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3729; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3729: ; return 18; } unsigned long REGPARAM2 CPUFUNC(op_e7f8_5)(uae_u32 opcode) /* ROLW */ { {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 4; Exception(3, 0); goto endlabel3730; } {{ 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); m68k_incpc(4); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3730: ; return 16; } unsigned long REGPARAM2 CPUFUNC(op_e7f9_5)(uae_u32 opcode) /* ROLW */ { {{ uaecptr dataa = get_ilong_prefetch(2); if ((dataa & 1) != 0) { last_fault_for_exception_3 = dataa; last_op_for_exception_3 = opcode; last_addr_for_exception_3 = m68k_getpc() + 6; Exception(3, 0); goto endlabel3731; } {{ 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); m68k_incpc(6); fill_prefetch_0 (); put_word(dataa,val); }}}}}endlabel3731: ; return 20; } #endif